zoukankan      html  css  js  c++  java
  • 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层的方法使用

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

  • 相关阅读:
    [LeetCode] 909. Snakes and Ladders 蛇梯棋
    [LeetCode] 857. Minimum Cost to Hire K Workers 雇佣K名工人的最低成本
    [LeetCode] 908. Smallest Range I 最小区间
    [LeetCode] 862. Shortest Subarray with Sum at Least K 和至少为K的最短子数组
    [LeetCode] 907. Sum of Subarray Minimums 子数组最小值之和
    [LeetCode] 864. Shortest Path to Get All Keys 获得所有钥匙的最短路径
    [LeetCode] 906. Super Palindromes 超级回文数
    [LeetCode] 871. Minimum Number of Refueling Stops 最少的加油站个数
    [LeetCode] 905. Sort Array By Parity 按奇偶排序数组
    [LeetCode] 1028. Recover a Tree From Preorder Traversal 从先序遍历还原二叉树
  • 原文地址:https://www.cnblogs.com/guanyuehao0107/p/11800351.html
Copyright © 2011-2022 走看看