加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

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

发布时间:2019-10-18 21:06:17 所属栏目:建站 来源:SnailClimb
导读:JPA 这部门内容上手很轻易,可是涉及到的对象照旧挺多的,网上大部门关于 JPA 的资料都不是出格一切,大部门用的版本也是较量落伍的。其它,我下面讲到了的内容也不行能涵盖全部 JPA 相干内容,我只是把本身认为较量重要的常识点总结在了下面。许多处所我

节制台打印出来的 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.更新用户

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读