26、springboot——整合JPA
1、创建项目
2、在application.yml中配置数据源和JPA的相关配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/springbootjpa?serverTimezone=GMT
username: root
password: 123
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update #更新或者创建表
show-sql: true #控制台显示sql
3、编写好实体类并配置好表的映射关系
import javax.persistence.*; /** * 使用JPA注解配置映射关系 */ @Entity //告诉JPA这是一个实体类(和数据表映射的类) @Table(name = "tbl_user") //指定和哪个数据表对应;如果省略name属性,表名默认就是首字母小写的类名 public class User { @Id //指定这是主键 @GeneratedValue(strategy = GenerationType.IDENTITY) //自增策略 private Integer id; @Column(name = "last_name",length = 50) //指定这是表中的一个列 private String lastName; @Column //name属性省略默认就是属性名 private String email; public Integer getId() { return id; }
........
}
4、编写Dao接口来操作实体类对应的数据表(Repository)
CrudRepository有基本增删改查的功能;PagingAndSortingRepository则有分页和排序功能;
由图中的继承关系,我们编写的repository只需要实现JpaRepository就既可以有增删改查,也有分页和排序功能
package com.atguigu.springboot.repository; import com.atguigu.springboot.entity.User; import org.springframework.data.jpa.repository.JpaRepository; //继承JpaRepository来完成对数据库的操作 public interface UserRepository extends JpaRepository<User,Integer> { }
5、这时我们先启动项目,让jpa根据配置自动帮我们建表
启动项目前还没有表:
启动项目之后表自动创建成功:
6、创建controller调用UserRepository(这里只是为了演示Repository的功能,所以没有创建service层)
注意springboot2.x中的Repository的findOne方法和springboot1.x不一样,百度了解即可
@RestController public class UserController { @Autowired UserRepository userRepository; @GetMapping("/user/{id}") public Optional<User> getUser(@PathVariable("id") Integer id){ User u = new User(); u.setId(id); Example<User> example = Example.of(u); Optional<User> one = userRepository.findOne(example); return one; } @GetMapping("/user") public User insertUser(User user){ User u = userRepository.save(user); return u; } }
插入测试:
查询测试:
分类:
SpringBoot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)