Spring boot6之整合Spring Data JPA

Spring boot整合Spring Data JPA

JPA Hibernate框架就是JPA的实现

Spring Data JPA不是对JPA规范的具体实现,本身是一个抽象层

  • 配置pom.xml

    1 <?xml version="1.0" encoding="UTF-8"?>

    2 <project xmlns="http://maven.apache.org/POM/4.0.0"

    3                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    4                   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    5         <modelVersion>4.0.0</modelVersion>

    6 

    7         <groupId>com.wiggin</groupId>

    8         <artifactId>springbootdatajap</artifactId>

    9         <version>1.0-SNAPSHOT</version>

   10         <parent>

   11                 <groupId>org.springframework.boot</groupId>

   12                 <artifactId>spring-boot-parent</artifactId>

   13                 <version>2.1.5.RELEASE</version>

   14         </parent>

   15 

   16         <dependencies>

   17                 <dependency>

   18                         <groupId>org.springframework.boot</groupId>

   19                         <artifactId>spring-boot-starter-data-jpa</artifactId>

   20                 </dependency>

   21                 <dependency>

   22                         <groupId>mysql</groupId>

   23                         <artifactId>mysql-connector-java</artifactId>

   24                 </dependency>

   25                 <dependency>

   26                         <groupId>org.projectlombok</groupId>

   27                         <artifactId>lombok</artifactId>

   28                 </dependency>

   29         </dependencies>

   30 

   31 </project>

  • 创建实体类Student

    1 package com.wiggin.entity;

    2 

    3 import lombok.Data;

    4 

    5 import javax.persistence.*;

    6 import java.util.Date;

    7 

    8 // 创建表不用关联数据库

    9 @Data

   10 @Entity

   11 public class Student {

   12         // 主键

   13         @Id

   14         // 自增

   15         @GeneratedValue(strategy = GenerationType.IDENTITY)

   16         private Long id;

   17         @Column

   18         private String name;

   19         @Column

   20         private int score;

   21         @Column

   22         private Date birthday;

   23 }

  • 创建接口StudentRepository

    1 package com.wiggin.repository;

    2 

    3                 import com.wiggin.entity.Student;

    4                 import org.springframework.data.jpa.repository.JpaRepository;

    5 

    6 // 直接继承JpaRepository<Student,Long> ,传入实体类和主键类型,不需要要写功能代码

    7 public interface StudentRepository extends JpaRepository<Student,Long> {

    8         // 自定义方法要符合方法命名规定,同样也不需要实体化

    9         public Student getById(Long id);

   10

  • 创建StudentHandler注入StudentRepository

    1 package com.wiggin.repository;

    2 

    3 import com.wiggin.entity.Student;

    4 import org.springframework.data.jpa.repository.JpaRepository;

    5 

    6 // 直接继承JpaRepository<St

    1 package com.wiggin.controller;

    2 

    3 

    4 import com.wiggin.entity.Student;

    5 import com.wiggin.repository.StudentRepository;

    6 import org.springframework.beans.factory.annotation.Autowired;

    7 import org.springframework.stereotype.Controller;

    8 import org.springframework.web.bind.annotation.*;

    9 

   10 import java.util.List;

   11 

   12 

   13 @RestController

   14 public class StudentHandler {

   15         @Autowired

   16         private StudentRepository studentRepository;

   17 

   18         @GetMapping("/findAll")

   19         public List<Student> findAll(){

   20                 return studentRepository.findAll();

   21         }

   22         @GetMapping("/findById/{id}")

   23         public Student findById(@PathVariable("id") Long id){

   24                 return studentRepository.getById(id);

   25         }

   26         @PostMapping("/save")

   27         public void save(@RequestBody Student student){

   28                 studentRepository.save(student);

   29         }

   30         @PutMapping("/update")

   31         public void update(@RequestBody Student student){

   32                 studentRepository.save(student);

   33         }

   34         @DeleteMapping("/deleteById/{id}")

   35         public void deleteById(@PathVariable("id") Long id){

   36                 studentRepository.deleteById(id);

   37         }

   38 

   39 }

  

  • 配置application.yml

    1 spring:

    2     datasource:

    3         url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8

    4         username: root

    5         password: 123456

    6         driver-class-name: com.mysql.cj.jdbc.Driver

    7     jpa:

    8         show-sql: true # 输出SQL

    9         properties:

   10             hibernate:

   11                 format_sql: true # 格式化输出SQL

  • 创建启动类Application

    1 package com.wiggin;

    2 

    3 import org.springframework.boot.SpringApplication;

    4 import org.springframework.boot.autoconfigure.SpringBootApplication;

    5 

    6 @SpringBootApplication

    7 public class Application {

    8         public static void main(String[] args) {

    9                 SpringApplication.run(Application.class,args);

   10         }

   11 }

 

posted @ 2020-08-13 22:43  wigginess  阅读(155)  评论(0编辑  收藏  举报