Spring进阶(一):Springmvc常用注解标签详解(spring springmvc常用注解)
612
2022-05-30
Repository 接口是 spring Data JPA 中为我我们提供的所有接口中的顶层接口,而且是个标志接口,Repository 提供了两种查询方式的支持
1)基于方法名称命名规则查询
2)基于@Query 注解查询
Repository
一、基于方法名称命名规则查询
1.方法名称命名规则查询
规则:findBy(关键字)+属性名称(属性名称的首字母大写)+查询条件(首字母大写)
2.具体使用
创建接口,并定义相关方法
/** * Repository 接口使用 * 定义的方法名称 参考文档定义 */ public interface UserDao extends Repository
1
2
3
4
5
6
7
8
9
单元测试
/** * @program: spring-hibernate * @description: 单元测试 * @author: 波波烤鸭 * @create: 2019-05-18 09:48 */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext.xml") public class TestDemo { @Autowired private UserDao usersDao; /** * 需求:使用用户名作为查询条件 */ @Test public void test1() { /** * 判断相等的条件,有三种表示方式 * 1,什么都不写,默认的就是做相等判断 * 2,Is * 3,Equal */ List
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
查询结果
二、基于@Query 注解查询
通过方法命令的方式使用的方式如果查询条件比较复杂,那么方法的名称就会很长,不是很方便,这时我们可以通过@Query注解的方式来实现。
2.1通过 JPQL 语句查询
JPQL:通过 Hibernate 的 HQL 演变过来的。他和 HQL 语法及其相似。
创建接口
//使用@Query 注解查询 @Query(value="from Users where username = ?") List
1
2
3
4
5
6
7
单元测试
/** * 测试@Query 查询 JPQL */ @Test public void test4(){ List
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2.2通过SQL语句查询
我们也可以直接在定义的方法头部通过@Query注解来添加Sql语句来实现,具体如下:
//使用@Query 注解查询 SQL //nativeQuery:默认的是 false.表示不开启 sql 查询。是否对 value 中的语句做转义。 @Query(value="select * from users where username = ?",nativeQuery=true) List
1
2
3
4
5
6
7
8
单元测试
/** * 测试@Query 查询 SQL */ @Test public void test7(){ List
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2.3 通过@Query 注解完成数据更新
@Query注解可以完成数据的更新操作,但是不能实现添加和删除数据的操作,实现如下:
接口中声明方法:
@Query("update Users set userage = ? where userid = ?") @Modifying //@Modifying 当前语句是一个更新语句 void updateUserAgeById(Integer age,Integer id);
1
2
3
单元测试
/** * 测试@Query update */ @Test @Transactional @Rollback(false) public void test10(){ this.usersDao.updateUserAgeById(24, 6); }
1
2
3
4
5
6
7
8
9
通过以上的介绍,我们发现Repository接口主要还是实现查询相关的操作,对DML的支持并不友好,下篇我们讲介绍CrudRepository接口。下篇见~
SQL
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。