Skip to content
生如风生如风
主页
github icon
  • Spring Data JPA
    • JPA与Spring Data JPA
      • Springboot整合Spring Data JPA

      SpringBoot—Spring Data JPA

      author icon生如风calendar icon2023年3月16日category icon
      • SpringBoot
      tag icon
      • jpa
      timer icon大约 3 分钟

      此页内容
      • Spring Data JPA
        • JPA与Spring Data JPA
        • Springboot整合Spring Data JPA

      [TOC]

      # Spring Data JPA

      # JPA与Spring Data JPA

      参考:https://blog.csdn.net/cd546566850/article/details/107180272/ 通过这篇文章对JPA和Spring Data JPA 有最直观的了解 在这里插入图片描述

      在这里插入图片描述

      # Springboot整合Spring Data JPA

      1. pom.xml
      <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>
          <parent>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-parent</artifactId>
              <version>2.7.9</version>
              <relativePath/> <!-- lookup parent from repository -->
          </parent>
          <groupId>com.liwang</groupId>
          <artifactId>jpa</artifactId>
          <version>0.0.1-SNAPSHOT</version>
          <name>jpa</name>
          <description>Demo project for Spring Boot</description>
          <properties>
              <java.version>1.8</java.version>
          </properties>
          <dependencies>
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-data-jpa</artifactId>
              </dependency>
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-web</artifactId>
              </dependency>
      
              <dependency>
                  <groupId>com.mysql</groupId>
                  <artifactId>mysql-connector-j</artifactId>
                  <scope>runtime</scope>
              </dependency>
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-test</artifactId>
                  <scope>test</scope>
              </dependency>
          </dependencies>
      
          <build>
              <plugins>
                  <plugin>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-maven-plugin</artifactId>
                  </plugin>
              </plugins>
          </build>
      
      </project>
      
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      1. application.properties
      spring.datasource.url=jdbc:mysql:///test2?useUnicode=true&characterEncoding=UTF-8
      spring.datasource.username=root
      spring.datasource.password=root
      
      # 使用的数据库类型
      spring.jpa.database=mysql
      spring.jpa.database-platform=mysql
      # 显示sql
      spring.jpa.show-sql=true
      # 当在java实体类中新增了一个字段,在应用重新运行时,会将字段添加到数据库表中的新列,但不会移除先前存在的列或约束
      spring.jpa.hibernate.ddl-auto=update
      # 配置数据库方言,默认创建数据库表使用的是myisam引擎,指定方言是为了使用innodb引擎
      spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
      
      
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      1. 创建 Book 类
      @Entity(name = "t_book")
      public class Book {
      
          @Id
          @GeneratedValue(strategy = GenerationType.IDENTITY)
          private Long id;
          private String name;
          private String author;
      
      	@Override
          public String toString() {
              return "Book{" +
                      "id=" + id +
                      ", name='" + name + '\'' +
                      ", author='" + author + '\'' +
                      '}';
          }
      
          public Long getId() {
              return id;
          }
      
          public void setId(Long id) {
              this.id = id;
          }
      
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
              this.name = name;
          }
      
          public String getAuthor() {
              return author;
          }
      
          public void setAuthor(String author) {
              this.author = author;
          }
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      1. 这时试运行项目,查看数据库 test2 下是否生成 book 表

        在这里插入图片描述

      2. 运行成功,创建表

        在这里插入图片描述

      3. 创建BookDao 接口,实现JpaRepository

      public interface BookDao extends JpaRepository<Book, Long> {
      }
      
      1
      2
      1. 测试保存数据到数据库
      @SpringBootTest
      class JpaApplicationTests {
      
          @Autowired
          BookDao bookDao;
      
          @Test
          void contextLoads() {
              Book b = new Book();
              b.setName("三国演义");
              b.setAuthor("罗贯中");
              bookDao.save(b);
          }
      
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15

      刷新数据表

      在这里插入图片描述

      1. 测试查询、删除、更新在这里插入图片描述
      	@Test
          void test01() {
              // 查询所有数据,现在数据库添加多条记录
              List<Book> list = bookDao.findAll();
              System.out.println("list = " + list);
      
              System.out.println("-------------------");
      
              // 根据id 查询
              Optional<Book> book = bookDao.findById(3L);
              System.out.println("book = " + book);
          }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12

      在这里插入图片描述在这里插入图片描述

      在这里插入图片描述

      1. 测试分页
      	@Test
          void test03() {
              // 分页查询页码从0 开始
              PageRequest pageRequest = PageRequest.of(0, 3, Sort.by(Sort.Order.asc("id")));
              Page<Book> page = bookDao.findAll(pageRequest);
              System.out.println("总记录数 = " + page.getTotalElements());
              System.out.println("总页数 = " + page.getTotalPages());
              System.out.println("查到的数据 = " + page.getContent());
          }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9

      在这里插入图片描述

      在这里插入图片描述

      到这,Spring Data Jpa 的简单使用就结束了了。后续继续更新自定义数据操作的使用。

      可以看看我的个人博客: 网站:https://www.fuzm.wangopen in new window / https://liwangc.gitee.ioopen in new window ————————————————————————— 作为初学者,很多知识都没有掌握,见谅,如有错误请指出,以期进步,感谢!。后续有新的学习,继续补充上来。

      默认页脚
      Copyright © 2026 生如风