设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

一文搞懂如何在Spring Boot正确中使用JPA(2)

发布时间:2019-10-18 15:34 所属栏目:21 来源:SnailClimb
导读:控制台打印出来的 sql 语句类似下面这样: droptableifexistsperson CREATETABLE`person`( `id`bigint(20)NOTNULLAUTO_INCREMENT, `age`int(11)DEFAULTNULL, `name`varchar(255)DEFAULTNULL, PRIMARYKEY(`id`) )EN

控制台打印出来的 sql 语句类似下面这样:

  1. drop table if exists person 
  2. CREATE TABLE `person` ( 
  3.   `id` bigint(20) NOT NULL AUTO_INCREMENT, 
  4.   `age` int(11) DEFAULT NULL, 
  5.   `name` varchar(255) DEFAULT NULL, 
  6.    PRIMARY KEY (`id`) 
  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
  8. alter table person add constraint UK_p0wr4vfyr2lyifm8avi67mqw5 unique (name) 

4.创建操作数据库的 Repository 接口

  1. @Repository 
  2. public interface PersonRepository extends JpaRepository<Person, Long> { 

首先这个接口加了 @Repository 注解,代表它和数据库操作有关。另外,它继承了 JpaRepository接口,而JpaRepository长这样:

  1. @NoRepositoryBean 
  2. public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> { 
  3.     List<T> findAll(); 
  4.  
  5.     List<T> findAll(Sort var1); 
  6.  
  7.     List<T> findAllById(Iterable<ID> var1); 
  8.  
  9.     <S extends T> List<S> saveAll(Iterable<S> var1); 
  10.  
  11.     void flush(); 
  12.  
  13.     <S extends T> S saveAndFlush(S var1); 
  14.  
  15.     void deleteInBatch(Iterable<T> var1); 
  16.  
  17.     void deleteAllInBatch(); 
  18.  
  19.     T getOne(ID var1); 
  20.  
  21.     <S extends T> List<S> findAll(Example<S> var1); 
  22.  
  23.     <S extends T> List<S> findAll(Example<S> var1, Sort var2); 

这表明我们只要继承了JpaRepository 就具有了 JPA 为我们提供好的增删改查、分页查询以及根据条件查询等方法。

4.1 JPA 自带方法实战

1) 增删改查

1.保存用户到数据库

  1. Person person = new Person("SnailClimb", 23); 
  2.    personRepository.save(person); 

save()方法对应 sql 语句就是:insert into person (age, name) values (23,"snailclimb")

2.根据 id 查找用户

  1. Optional<Person> personOptional = personRepository.findById(id); 

findById()方法对应 sql 语句就是:select * from person p where p.id = id

3.根据 id 删除用户

  1. personRepository.deleteById(id); 

deleteById()方法对应 sql 语句就是:delete from person where id=id

4.更新用户

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读