spring boot如何整合springdatajpa
一、JPA是什么
JPA(Java Persistence API)是Sun官方提出的Java持久化规范,它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate,TopLink,JDO等ORM框架各自为营的局面,
而spring-data-jpa是对于jpa的一个封装概念提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率!
二、如何使用整合
1、导入maven依赖
<!-- 整合spring-boot-starter-data-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> </dependency>
2、编写数据库的连接信息,文件命名为application.properties
#DB Configation
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/users
spring.datasource.username=
spring.datasource.password=
# JPAConfiguration
spring.jpa.database=MySQL
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
3、创建数据库中对应的实体类
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Entity
@Table(name = "users")
public class User {
@Id //定义主键
@GeneratedValue(strategy = GenerationType.IDENTITY) //主键自增规则
private int uid;
private String uname;
private String pwd;
}
@Entity注解:jpa可直接根据entity创建表
@Table注解:name属性为表名
这里我使用了lombok插件,对应maven,如何使用在这就不叙说。
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> <scope>provided</scope> </dependency>
4、dao层(为了示例,直接从congtroller调用的dao层,未写service层)
继承JpaRepository:是PagingAndSortingRepository的子接口,增加了一些实用的功能,比如:批量操作等;泛型中使用的是当前实体类对象,以及其数据库表中的主键的引用数据类型
public interface UserDao extends JpaRepository<User,Integer> {
}
5、在controller层使用该接口的代理类对象
@Autowired
private UserDao userDao;
@RequestMapping("getList")
public List<User> getList(){
return userDao.findAll();
}
三、dao层的方法使用
通过该代理类对象调用该接口的实现类方法。通过内在默认的方法可以实现。