Spring-data-jpa的简单使用
Posted newbest
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring-data-jpa的简单使用相关的知识,希望对你有一定的参考价值。
记录是为了更好的成长!
接触springDataJpa以后, 感觉用起来还是可以的,习惯了mybatis的灵活,刚入手会觉得有难度,这里不说springdatajpa是什么,怎么用,主要分享心得
1、查询
条件查询
按jpa的规则在方法中拼接字段属性即可
//按姓名查询 List<Entity> findByuserNameEquals(String name); //按用户和密码查询 List<Entity> findByuserNameEqualsAndpassWordEquals(String userName,String passwrod); //查一条记录 getOne();
条件和分页查询
//分页,返回的page实例中就带有分页的所有信息,使用很方便 Pages<Entity> findAll(Pageable pageable); //按条件并且分页查询,分页查询需要在方法中置入Pageable pageable,pageable中还可以设置排序规则 Pages<Entity> findByTypeEquals(Integer type, Pageable pageable);
在使用分页查询时注意返回值的类型,只能是page,因为page中带有分页信息,返回List
是取不到分页信息 的,详细的内容看源码就会明白。 贴一个实际的需求查询(按条件并分页查询某个时间段内的数据)
Pages<Entity> findBycreateTimeAfterAndStatusEquals(String createTime,Integer status,Pageable pageable); //JPA打印的sql select * from user where createTime > '2019-05-16 08:20:53' #参数就是传入的String类型的createTime
开始很纠结比较日期时给JPA到底传什么类型的参数,其实不用麻烦,将JPA执行的sql打印出来,稍加分析就明白了。
模糊查询(like 和 Containing)
//like的使用: 传入的参数需要加% 才可以 Page<Entity> findByuserNameLike(String userName); //这里的参数 userName = “%” + userName + "%"; //Containing 翻译过来就是包含的意思 Page<Entity> findByuserNameContaining(String userName); //这里就可以直接传值,两者小小的区别
2、增加 、修改
//增加和修改都是同一个方法
save(Object obj);
注意修改是需要先查表中全部的数据,在对修改的字段进行set,否则会进行null的insert
3、 删除
删除就是delete开头的方法名了 。
以上内容代表个人观点,仅供参考,不喜勿喷。。。
以上是关于Spring-data-jpa的简单使用的主要内容,如果未能解决你的问题,请参考以下文章
spring-boot与spring-data-JPA的简单集成使用
spring-data详解之spring-data-jpa:简单三步快速上手spring-data-jpa开发