一:操作数据库起步
1.Spring-Data-Jpa
JPA定义了对象持久化的标准。
目前实现了有Hibernate,TopLink
2.pom添加依赖
1 <dependency>
2 <groupId>org.springframework.boot</groupId>
3 <artifactId>spring-boot-starter-data-jpa</artifactId>
4 </dependency>
5
6 <dependency>
7 <groupId>mysql</groupId>
8 <artifactId>mysql-connector-java</artifactId>
9 </dependency>
3.对jps进行配置
spring:
profiles:
active: dev
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3308/people?useSSL=false
username: root
password: 123456
jpa:
hibernate:
ddl-auto: create
show-sql: true
4.新建一个people的数据库
CREATE DATABASE IF NOT EXISTS yiibaidb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
不然,程序会报未发现数据库。
但是,表不需要新建,这个通过类就可以生成。
5.student的类
可以映射成数据库的字段。
Entity注解表示:类对应一个数据库的一个表。
1 package com.aspirant.springboot;
2
3 import javax.persistence.Entity;
4 import javax.persistence.GeneratedValue;
5 import javax.persistence.Id;
6
7 @Entity
8 public class Student {
9
10 @Id
11 @GeneratedValue
12 private Integer id;
13 private String name;
14 private Integer age;
15
16 public Student(){
17
18 }
19
20 public Integer getId() {
21 return id;
22 }
23
24 public void setId(Integer id) {
25 this.id = id;
26 }
27
28 public String getName() {
29 return name;
30 }
31
32 public void setName(String name) {
33 this.name = name;
34 }
35
36 public Integer getAge() {
37 return age;
38 }
39
40 public void setAge(Integer age) {
41 this.age = age;
42 }
43 }
6.自动生成数据库

7.注意点
配置文件的ddi-auto:create
意思的每次启动的时候都会把数据库清空。
ddl-auto:update
如果没有表,会自动创建,但是如果里面有数据,就不会清空数据。
二:操作数据的API
1.新建类(继续使用上面的Student.java类)
2.新建接口
1 package com.aspirant.springboot;
2
3 import org.springframework.data.jpa.repository.JpaRepository;
4
5 public interface StudentResitory extends JpaRepository<Student,Integer> {
6
7 }
3.新建controller类
查询数据库中的所有
1 package com.aspirant.springboot;
2
3 import org.springframework.beans.factory.annotation.Autowired;
4 import org.springframework.web.bind.annotation.GetMapping;
5 import org.springframework.web.bind.annotation.RestController;
6
7 import java.util.List;
8
9 @RestController
10 public class StudentController {
11
12 @Autowired
13 private StudentResitory studentResitory;
14
15 /**
16 * 查询数据库中的所有
17 * @return
18 */
19 @GetMapping(value = "/hello")
20 public List<Student> getStuList(){
21 return studentResitory.findAll();
22 }
23 }
4.效果

5.添加一个学生记录
/**
* 添加一个学生记录
*/
@PostMapping(value = "/hello")
public Student addStu(@RequestParam("name") String name,@RequestParam("age") Integer age){
Student stu=new Student();
stu.setName(name);
stu.setAge(age);
return studentResitory.save(stu);
}
6.查询一个人,根据id
1 /**
2 * 查询一个学生,根据字段id
3 */
4 @GetMapping(value = "/hello/{id}")
5 public Student getStu(@PathVariable("id") Integer id){
6 return studentResitory.findOne(id);
7 }
7.更新
1 /**
2 * 更新数据库
3 */
4 @PutMapping(value = "/hello/{id}")
5 public Student updateStu(@PathVariable("id") Integer id,
6 @RequestParam("name") String name,
7 @RequestParam("age") Integer age ){
8 Student stu=new Student();
9 stu.setId(id);
10 stu.setName(name);
11 stu.setAge(age);
12 return studentResitory.save(stu);
13 }
8.删除
1 /**
2 * 删除数据
3 */
4 @DeleteMapping(value = "/hello/{id}")
5 public void deleteStu(@PathVariable("id") Integer id){
6 studentResitory.delete(id);
7 }
三:扩展
1.通过年龄还来查询
2.扩展接口
1 package com.aspirant.springboot;
2
3 import org.springframework.data.jpa.repository.JpaRepository;
4
5 import java.util.List;
6
7 public interface StudentResitory extends JpaRepository<Student,Integer> {
8
9 //根据年龄来查询数据
10 public List<Student> findByAge(Integer age);
11 }
3.程序
1 /**
2 * 根据年龄进行查询
3 */
4 @GetMapping(value = "/hello/age/{age}")
5 public List<Student> getStuList(@PathVariable("age") Integer age){
6 return studentResitory.findByAge(age);
7 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具