动态拼装sql写入mysql_Mybatis动态拼接SQL语句篇

2ff34e647e2e3cdfd8dca593e17d9b0a.png

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}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值