spinBoot 6-3----数据访问/整合JPA

本文介绍Spring Data JPA在Spring Boot项目中的应用,包括如何使用JPA进行数据访问、实体类映射、配置及常见问题解决等。通过具体实例展示了如何搭建环境并实现基本的CRUD操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springdata

是Springboot 底层默认进行数据访问的技术,用来简化数据访问(有许多的用来简化数据访问的部分;例如:简化Redis)springboot的目标—统一数据访问–为开发者提供统一的API来对数据层进行操作
为了实现提供统一的API

  1. 提供了统一的接口(完成访问数据库的基本功能)
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190401152851894.png
  2. 提供了数据访问的模板类xxxTemplate
    例如:MongolianTemplate RedisTemplate;

使用springData访问数据的模式
在这里插入图片描述
进行数据访问面向SpringData 编程;使用好springdata 提供的Repository ,Templates(模板类),ObjectMapping(对象映射)
操作关系型数据库--使用springData JPA 模块


SpringData JPA


JPA :

是javaEE 持久层的API ,是JAVAEE 提供的一种规范;这个规范的实现有--Hibernate,Toplink,OpenJAP;springData JAP 是将实现再次封装【springdata JPA 的底层默认使用的是:Hibernate】;了解SpringDataJPA的底层,我们在使用的时候依然是面向SpringData 使用它提供的Repository,Template,ObjectMapping 完成数据访问。

JPA 实际上也是完成苏剧访问的一种框架(genMybatis 是一样的)只是它是属于Springboot 自己的

使用SpringDate 完成数据访问

  1. 创建项目,导入依赖,选择场景启动器

【在整合Mybatis 的时候我们也选择了JDBC的场景启动器,是为了自动的生成数据连接,但是其实在Mybatis 的依赖树中是自动导入了JDBCstart 同样的JPA的依赖树中也自动添加了JDBC所以自其实选不选都一样】

  1. 配置数据源,可以自己配置一个数据源(例如:druid),也可以使用springboot 自带的
  2. 编写配置文件application.yml(数据源基本配置)
spring:
  datasource:
    username: root
    password: 12345
    url: jdbc:mysql://localhost:3306/jpa?serverTimezone=UTC
    driver-class-name: com.mysql.cj.jdbc.Driver
  1. JPA :ORM(Object Relational Mapping/对象关系映射)
    1. 编写实体类(bean) 和数据表进行映射,并配置好映射关系
使用JPA 注解,配置映射关系
@Entity     告诉JPA 这是一个实体类,是和数据表映射的类不是普通的bean
@Table(name = "tbl_user")   //配置是和那个表进行映射;如果省略表名就是类名首字母小写

public class User {
    @Id     表明这是一个主键
    @GeneratedValue(strategy = GenerationType.IDENTITY)  //者是一个自增的主键
    private Integer id;
    
    @Column(name = "lats_name",length = 50)//这是和数据库表对应的一个列,设置列明和列的属性(50个字符长度)
    private String lastName;
    
    @Column   不进行设置,默认列名为属性名
    private String email;
  1. 要操作这个表,编写Dao接口来操作对应的数据表(Repository) 继承jpaRepository
继承JpaRepository  完成对数据库的操作
public interface UserRepository extends JpaRepository<User,Integer>{
    //具备了操作数据库的方法
}
  1. 使用JPA 因为是ORM所以会根据绑定vde实体类帮我们自动创建数据表,但是要进行一定的配置
jpa:
    hibernate:
#    数据表创建的方式:数据表存在就进行数据更新,不存在数据表就进行创建
      ddl-auto: update
      
#      控制台显示Sql
    show-sql: true
    
#    jpa 使用底层的Hibeinate 帮我们完成数据库中数据表的创建- 进行基本的配置
#    与jpa 有关的配置都在jpaProperties 这个类中;所有的配置都是spring 开头
  1. 编写Controller 进行测试
    注意如果你是用的是SpringBoot2.0 以上的版本并且在数据访问的时候使用了getOne 查询数据是没有问题但是在返回JSON数据的时候就会出现问题:要在实体类上面加上注解:
    @JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
@RestController
public class UserController {
    @Autowired
    private UserRepository userRepository;
    @GetMapping("/user/{id}")
    public User GetUser(@PathVariable("id") Integer id){
       User user = userRepository.getOne(id);
        return user;
    }
    @GetMapping("/user")
    public User InsertUser(User user){
        userRepository.save(user);
        return  user;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值