MyBatis常用OGNL表达式
使用OGNL表达式,类似EL表达式。使用如下标签,类似JSTL标签
以下介绍的标签基本都在操作标签内(、、、)
1、:相当于给sql语句后面自动添加一个 where 1=1,避免sql语句where后面紧跟着一个and即第一个条件为假
2、:if语句
test:对属性的条件,填写OGNL表达式,
3、: 对拼接后的sql语句再进行最后的修改
prefix:给拼串后的整个字符串加一个前缀
prefixOverrides:前缀覆盖: 去掉整个字符串前面多余的字符
suffix:suffix给拼串后的整个字符串加一个后缀
suffixOverrides:去掉整个字符串后面多余的字符
4、:相当于带break的choose语句,只能执行第一个匹配条件的语句
:相当于switch语句
test:属性值的判断,ONGL表达式
:相当于default语句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
select* from tb1_employee
and id=#{id}
and last_name=#{lastName}
and email=#{email}
and gender=#{gender}
and id=#{id}
and last_name=#{lastName}
and email=#{email}
and gender=#{gender}
and id=#{id}
and last_name=#{lastName}
and email=#{email}
and gender=#{gender}
5、:相当于给sql语句后面自动添加一个 set,同时去掉set条件后的逗号( , ),在更新数据表数据时使用。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
update tb1_employee
id=#{id}
last_name=#{lastName}
gender=#{gender}
where email=#{email};
6、:遍历传入的List列表参数或Map集合参数的标签
collection:指定要遍历的集合参数名
item:正在遍历的元素名(自己取名)
separator:每个元素之间的分隔符
open:在遍历出来的结果前添加前缀
close:在遍历出来的结果后添加后缀
index:索引。遍历list的时候是index就是索引,item就是当前值
#{元素名(即item)}:取出元素
使用根据传入的List拼接sql查询语句1
2
3
4
5
6
select* from tb1_employee where id in
#{idItem}
使用进行批量插入的俩种方法:
第一种:MySQL支持values(…),values(…),…来插入多条数据1
2
3
4
5
6
7
8
9
10
11
12
insert into tb1_employee values
(
#{employee.id},
#{employee.lastName},
#{employee.gender},
#{employee.email},
#{employee.dept.id}
)
第二种:拼写多条insert语句,需要开启在全局配置文档中修改database=jdbc:mysql://localhost:3306/mybatis?allowMultiQueries=true1
2
3
4
5
6
insert into tb1_employee values(#{employee.id},#{employee.lastName},
#{employee.gender}, #{employee.email},#{employee.dept.id})
7、:存储常用ONGL表达式
name:引用时别名
value :ONGL表达式
#{name}:使用ONGL表达式1
2
3
4
select* from tb1_employee where last_name like #{similarLastName}
8、:存储sql语句的数据库常用列名
id:引用时别名
:根据refid取出标签存储的列名
refid:取出refid与id相同的列名1
2
3
4
5
6
7
8
9
10
11
12
13
last_name,gender
insert into tb1_employee(
) values
(
#{lastName},
#{gender}
)
二、内置参数1
2
3
where id = #{_parameter.id}