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;
    }
}
复制代码

插入测试:

 

 查询测试:

posted @   Arbitrary233  阅读(249)  评论(0编辑  收藏  举报
编辑推荐:
· 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)
点击右上角即可分享
微信分享提示