Spring-data-jpa的简单使用

Posted newbest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring-data-jpa的简单使用相关的知识,希望对你有一定的参考价值。

记录是为了更好的成长!

接触springDataJpa以后, 感觉用起来还是可以的,习惯了mybatis的灵活,刚入手会觉得有难度,这里不说springdatajpa是什么,怎么用,主要分享心得

1、查询

  1. 条件查询

    按jpa的规则在方法中拼接字段属性即可

    //按姓名查询
    List<Entity> findByuserNameEquals(String name); 
    
    //按用户和密码查询
    List<Entity> findByuserNameEqualsAndpassWordEquals(String userName,String passwrod); 
    
    //查一条记录
     getOne();
  2. 条件和分页查询

    //分页,返回的page实例中就带有分页的所有信息,使用很方便
    Pages<Entity> findAll(Pageable pageable);
    
    //按条件并且分页查询,分页查询需要在方法中置入Pageable pageable,pageable中还可以设置排序规则
    Pages<Entity> findByTypeEquals(Integer type, Pageable pageable);

    在使用分页查询时注意返回值的类型,只能是page,因为page中带有分页信息,返回List是取不到分页信息 的,详细的内容看源码就会明白。

  3. 贴一个实际的需求查询(按条件并分页查询某个时间段内的数据)

    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打印出来,稍加分析就明白了。

  4. 模糊查询(likeContaining

    //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开发

spring-data-jpa和mybatis可以整合在一起使用有啥优缺点

spring-data-jpa快速入门——简单查询

Spring-Data-JPA 中的查询如何动态组装条件?

使用 spring-data-jpa 和 MockMvc 进行 spring boot junit 测试