SpringBoot整合SpringData JPA
1、SpringData简介
2、整合SpringData
引入依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.6.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!-- springBoot JPA的起步依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--mysql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
配置文件application.properties
可以参考JpaProperties
#DB Configuration:
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/study?
useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
#JPA Configuration:
spring.jpa.database=MySQL
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy
#自动建立表
spring.jpa.properties.hibernate.hbm2ddl.auto=update
## 自动扫描的包前缀
entitymanager.packagesToScan= com.yehui
编写一个实体类(bean)和数据表进行映射,并且配置好映射关系
//使用JPA注解配置映射关系
@Table(name="tb_user")//告诉JPA这是一个实体类(和数据表映射的类)
@Entity//@Table来指定和哪个数据表对应;如果省略默认表名就是user;
public class User {
@Id//这是一个主键
@GeneratedValue(strategy = GenerationType.IDENTITY)////自增主键
private Integer id;
@Column(name = "username")////这是和数据表对应的一个列
private String username;
private int age;
private Date ctm;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getCtm() {
return ctm;
}
public void setCtm(Date ctm) {
this.ctm = ctm;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", age=" + age +
", ctm=" + ctm +
'}';
}
}
编写一个Dao接口来操作实体类对应的数据表(Repository)
public interface UserRepository extends Repository<User,Integer> {
public List<User> findAll();
}
测试类
@RunWith(SpringRunner.class)
@SpringBootTest
public class JpaTest {
@Autowired
private UserRepository userRepository;
@Test
public void test01(){
List<User> all = userRepository.findAll();
System.out.println(all);
}
}