SpringData JPA -Respository接口-方法的命名规则

Repository 接口是 Spring Data JPA 中为我我们提供的所有接口中的顶层接口 Repository 提供了两种查询方式的支持

1)基于方法名称命名规则查询
2)基于@Query 注解查询
方法名称命名规则查询
语法格式:
规则:findBy(关键字)+属性名称(属性名称的首字母大写)+查询条件(首字母大写)

And 并且
Or 或
Is,Equals 等于
Between 两者之间
LessThan 小于
LessThanEqual 小于等于
GreaterThan 大于
GreaterThanEqual 大于等于
After 之后(时间)>
Before 之前(时间)<
IsNull 等于Null
IsNotNull,NotNull 不等于Null
Like 模糊查询。查询件中需要自己加%
NotLike 不在模糊范围内。查询件中需要自己加%
StartingWith 以某开头
EndingWith 以某结束
Containing 包含某
OrderBy 排序
Not 不等于
In 某范围内
NotIn 某范围外
TRUE 真
FALSE 假
IgnoreCase 忽略大小写

实例演示
1.首先配置文件内要配置JPA的命名空间,配置dao扫描的包
在这里插入图片描述

2.方法的命名规范

方法关键字+属性名称+差选的规则
SpringData 会根据方法的命名解析出来这个的方法是干什么的,并生成对象的SQL语句
优点:
对于简单的查询只要根据一定的命名规则即可实现
缺点:
对于复杂的条件查询,则方法名字的命名过长
解决:
使用@Query注解解决

/**
 * @project_name:hibernate02
 * @date:2019/8/20:11:01
 * @author:shinelon
 * @Describe:
 */

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:ApplicationContext-hib.xml")
public class ReponitoryTest {


    @Autowired
    private UsersDao userDao;


    /**
     * 大于
     */
    @Test
    public void test3(){
        List<Users> list = this.userDao.findByUseridGreaterThanEqual(2);
        for (Users u :
                list) {
            System.out.println(u);
        }
    }


    /**
     * 模糊查询
     */
    @Test
    public void test2(){
       List<Users> list = this.userDao.findByUsernameLike("1%");
        for (Users u :
                list) {
            System.out.println(u);
        }
    }


    /**
     * 多个条件查询
     */
    @Test
    public void test1(){
        List<Users> list = this.userDao.findByUsernameIsAndPasswordIs("123", "1234");
        for (Users u :
                list) {
            System.out.println(u);
        }
    }


    /**
     * 查询名字等于
     */
    @Test
    public void test(){
        List<Users> list =  this.userDao.findByUsernameIs("123");
        for (Users u :
                list) {
            System.out.println(u);
        }
    }
}

dao接口

/**
 * @project_name:hibernate02
 * @date:2019/8/20:10:56
 * @author:shinelon
 * @Describe: 
 *              Users:代表操作的表实体对象
 *              Integer:主键的类型
 */

public interface UsersDao extends Repository<Users,Integer> {

    List<Users> findByUsernameIs(String s);

    List<Users> findByUsernameIsAndPasswordIs(String s, String s1);

    List<Users> findByUsernameLike(String s);

    List<Users> findByUseridGreaterThanEqual(Integer i);
}

在这里插入图片描述

大于
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值