此篇文章的上一篇:使用IDEA创建Spring Boot项目(maven)
注:Spring Boot 版本为2.2.6
Spring-Data-Jpa
JPA(Java Persistence API)定义了一系列对象持久化的标准,目前实现这-规范的产品有Hibernate、TopLink等。
1.引入依赖
在pom中添加依赖,无需加版本号,添加后重新导入一下maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2.添加数据库配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/test?useSSL=true&serverTimezone=UTC&characterEncoding=UTF-8
username: root
password: 123456
jpa:
hibernate:
ddl-auto: create //注意create与update等的不同
show-sql: true //是否打印执行的sql语句,true/false
3.根据实体类建表
写一个实体类,注意添加注解
package com.example.demo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity //实体类的注解
public class Student {
@Id //@id注意选择这个javax.persistence
@GeneratedValue //为一个实体生成一个唯一标识的主键
private Integer id;
private String name;
private String hobby;
//以下是自动生成的构造方法和get()set()方法
public Student() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
}
启动项目,会自动建表,上面设置了ddl-show为true所以会打印sql如下红框
(因为选的是create所以先drop,如果是update就不会先删再建,而是在原本的基础上进行sql操作,一般不选用create,后文代码是改成了update的)
去数据库里看一下,建表成功了
4.增删改查之准备工作
准备一个Repository接口来对数据库进行操作,里面封装了很多实用的方法
以下是几个等会用到的:
- save() 用于新增和修改
- findAll() 用于查找所有
- findById() 通过id查询
- deleteById() 通过id删除
还有很多其他方法就不一 一列举了
package com.example.demo;
import org.springframework.data.jpa.repository.JpaRepository;
public interface StudentRepository extends JpaRepository<Student,Integer> {
}
5.增删改查之增
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class StudentController {
@Autowired
private StudentRepository repository;
@PutMapping("/student")
public Student create(@RequestParam("name") String name,@RequestParam("hobby") String hobby){
Student student = new Student();
student.setName(name);
student.setHobby(hobby);
return repository.save(student);
}
}
启动项目,然后用Postman发put请求:
去数据库看一下:
扫描二维码关注公众号,回复:
10380772 查看本文章
6.增删改查之查
(1)查询所有学生信息
@GetMapping("/student")
public List<Student> select() {
return repository.findAll();
}
(2)通过id查询学生信息
@GetMapping("/student/{id}")
public Student selectById(@PathVariable("id") Integer id){
return repository.findById(id).orElse(null);
}
7.增删改查之改
@PutMapping("/student/{id}")
public Student update(@PathVariable("id") Integer id,
@RequestParam("name") String name,
@RequestParam("hobby") String hobby){
Optional<Student> optional = repository.findById(id);
if(optional.isPresent()){
Student student = optional.get();
student.setName(name);
student.setHobby(hobby);
return repository.save(student);
}
return null;
}
8.增删改查之删
通过id删除学生信息
@PutMapping("/delStudent/{id}")
public boolean del(@PathVariable("id") Integer id){
if(repository.findById(id).isPresent()){
repository.deleteById(id);
return true;
}
return false;
}