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层的方法使用

通过该代理类对象调用该接口的实现类方法。通过内在默认的方法可以实现,

猜你喜欢

转载自www.cnblogs.com/guanyuehao0107/p/11800351.html