jpa repository简介

JPA是什么?

JPA 是 Spring Boot 官方推荐的数据库访问组件。

JPA repository是什么?

spring中操作数据库的一个库

jpa repository常见用法

@Table(name = “数据库里对应的表名”)

用java类定义对应的数据库表

@Table(name = "fh_user")
public class UserDO {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    
    @Column(name="user_name", length = 32)
    private String userName;

    @Column(name="nike_name", length = 32)
    private String nikeName;

    @Column(name="sex")
    private Integer sex;

    @UpdateTimestamp
    @Column(name = "update_time")
    private Date updateTime;

    // 创建时间注解
    @CreationTimestamp
    @Column(name = "create_time")
    private Date createTime;
}
@Repository的意义?

这个接口里定义了一系列操作数据库的方法。

@Repository
public interface UserRepository extends JpaRepository<UserDO, Integer> {
}

nativeQuery是什么意思?

@Query(value = "select * from schedule_job where status=1 and type != 'AutoETL'", nativeQuery = true)
  List<ScheduleJob> getActiveScheduleJobs();

Repository里预定义的快捷数据库方法

有些内置的特殊命名的方法可以直接用:
如,find…By/findBy…, read…By, get…By, query…By, search…By, stream…By

// 通过UserName去query数据库,并返回UserDO结构的对象
Sort.TypedSort<UserDO> sort = Sort.sort(UserDO.class);
Slice<UserDO> users = userRepository.findByUserName("xxxx", PageRequest.of(0, 10, sort.by(UserDO::getId).descending()));
### 使用 Spring JPA 中的 JpaRepository #### 定义实体类 为了使用 `JpaRepository` 进行数据库操作,首先需要定义一个与数据库表对应的实体类。假设有一个名为 `User` 的实体类: ```java import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private int age; // Getters and Setters } ``` #### 创建仓库接口 接着创建一个继承自 `JpaRepository` 接口的仓库接口。这个接口不需要任何具体实现,因为 `JpaRepository` 已经提供了一系列默认的方法。 ```java import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository<User, Long> { } ``` 上述代码展示了如何简单地声明一个用于管理 `User` 实体的仓库接口[^1]。 #### 自动化配置 当应用程序启动时,Spring Boot 会自动检测到实现了 `JpaRepository` 的接口并为其生成代理实例。这意味着无需手动编写 DAO 层的具体逻辑就可以获得完整的 CRUD 功能以及分页和排序支持[^2]。 #### 执行基本操作 以下是几种常见的数据访问方式及其对应的方法调用示例: - **保存对象** ```java userRepository.save(new User(null, "Alice", 30)); ``` - **查找单个记录** ```java Optional<User> userOpt = userRepository.findById(1L); if (userOpt.isPresent()) { System.out.println(userOpt.get()); } ``` - **删除指定ID的数据** ```java userRepository.deleteById(1L); ``` - **获取所有记录列表** ```java List<User> allUsers = userRepository.findAll(); ``` 这些方法都由 `JpaRepository` 提供,默认情况下可以满足大多数应用场景的需求[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值