SpringData JPA -Respository接口-@Query注解查询

使用Query注解实现查询

@Query注解使用是JPQL语法进行查询的,其实JPQL语法和HQL语法是类似的,把JPQL当HQL使用即可,底层依然是将JPQL翻译成sql语句进行执行的
创建接口

@Query(value = "from  Users")
List<Users> findByUsersIsUseJPQL();


/**
 * @param name
 * @description: 注意查询时候的占位符设置  是根据参数的位置进行赋值的
 * @return:
 * @author: shinelon
 * @time: 2019/8/20:11:49
 */
@Query(value = "from Users  where username = ?")
List<Users> findByUsersByNameUseJPQL(String name);


@Query(value = "from Users  where username = ? and password = ?")
List<Users> findByUsersUsernameAndPassword(String username,String password);

测试类


/**
 * 使用JPQL语句条件查询
 */
@Test
public void test6(){
    List<Users> list = this.userDao.findByUsersUsernameAndPassword("123","1234");
    for (Users u :
            list) {
        System.out.println(u);
    }
}


/**
 * 使用JPQL语句条件查询
 */
@Test
public void test5(){
    List<Users> list = this.userDao.findByUsersByNameUseJPQL("123");
    for (Users u :
            list) {
        System.out.println(u);
    }
}

/**
 * 使用JPQL语句查询全部
 */
@Test
public void test4(){
    List<Users> list = this.userDao.findByUsersIsUseJPQL();
    for (Users u :
            list) {
        System.out.println(u);
    }
}

查询全部
在这里插入图片描述

条件查询
在这里插入图片描述

多条件查询
在这里插入图片描述

二)使用@Query注解实现纯SQL查询

需要使用注解内的nativeQuery 属性设为true,表示开启本地查询,不对value内的SQL语句进行翻译
代码演示在注解上开启指定的数据即可

/**
 * 使用JPQL语句条件查询
 */
@Test
public void test7(){
    List<Users> list = this.userDao.findByNameUsernameAndPasswordUseSQL("123", "1234");
    for (Users u :
            list) {
        System.out.println(u);
    }
}

结果:使用原生的sql语句实现了查询
在这里插入图片描述

三)@Query注解完成修改的操作

使用@Query注解进行数据修改数据库的时候,需要配合@Modifying注解一起使用
@Modifying注解的用处就是告诉SpringData当前执行的语句为修改语句

@Query(value = "update Users set username = ? where userid = ?")
@Modifying//表示此语句为修改语句,如果是修改语句话要开启此注解
int updateUsersPasswordByUserid(String password, Integer userid);
@Test
@Transactional
@Rollback(false)
public void test8(){
    int yyyy = this.userDao.updateUsersPasswordByUserid("yyyy", 2);
    System.out.println(yyyy);
}

结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值