SpringBoot整合Spring Data JPA
JPA Hibernate 框架就是一个JPA的实现
Spring Data JPA 不是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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>springBootMyybatis22</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>2.3.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
</project>
2.Student实体类
package com.xing.entity;
import lombok.Data;
import javax.persistence.*;
import java.util.Date;
@Data
@Entity
public class Student {
//策略 设计模式之策略模式(Strategy)-Java8场景定义一系列算法,
// 封装每个算法,并使它们可互换。策略允许算法独立于使用它的客户端。java8很好的支持了策略模式,
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column
private String name;
@Column
private Double score;
@Column
private Date birthday;
}
3.创建StudentRepository接口
package com.xing.repository;
import com.xing.entity.Student;
import org.springframework.data.jpa.repository.JpaRepository;
public interface StudentRepository extends JpaRepository<Student,Long> {
}
不要急躁,做啥事想着立马做好,春华秋实都有时间,心急吃不了热豆腐,欲速不达
欲速不达
您好,结合您的情况描述,你应该也知道,欲速则不达这个词语。一般来说,如果想干成大事儿,就要在干大事之前,默默的做一些小事,积少成多。心急是吃不了热豆腐的,所以还是自己调整心态。祝您生活顺利,事业有成。
朋友,像你这个年纪20多岁,那么确实有很多想法。因为思维是比较活跃的。
指导意见:
但是年轻人也有个问题,就是不能沉下心专注的做某件事情,不能够持之以恒。像你这种心态很多人都有,不是说你一个人的问题。不过我建议就是说从一个小目标开始,每天完成一个小目标,能够慢慢的积累积累。你的专注度就会更加强,你的办事效率会更高,越来越接近你最大的理想,成就你的事业。
4.创建StudentHandler,注入StudentRepository
package com.xing.controller;
import com.xing.entity.Student;
import com.xing.repository.StudentRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
public class StudentHandler {
@Autowired
private StudentRepository studentRepository;
@GetMapping("/findAll")
public List<Student> findAll(){
return studentRepository.findAll();
}
@GetMapping("/findById/{id}")
public Student findById(@PathVariable("id") Long id){
return studentRepository.getById(id);
}
@PostMapping("/save")
public Student save(@RequestBody Student student){
return studentRepository.save(student);
}
@PutMapping("/update")
public Student update(@RequestBody Student student){
return studentRepository.save(student);
}
@DeleteMapping("/delete/{id}")
public void deleteById(@PathVariable("id") Long id){
studentRepository.deleteById(id);
}
}
5.application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mbtest?useUnicode=true&characterEncoding=utf-8
username: root
password: root
jpa:
show-sql: true
properties:
hibernate:
format_sql: true
6.启动类
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mbtest?useUnicode=true&characterEncoding=utf-8
username: root
password: root
jpa:
show-sql: true #输出sql
properties:
hibernate:
format_sql: true #格式化sql