mybatis基于xml配置的动态sql语句使用

mybatis基于xml配置的动态sql语句使用

mappers配置文件中的几个标签:

​ 标签中有type属性,写判断条件

例如:


但是,当判断条件很多时,上面where 1 = 1 看起来有些麻烦,就用到了下个标签

当使用where标签时,以上代码就变成了这样


在这里插入图片描述

可以看出,当属性为第一个时,会忽略and

​ 当我们要实现以下操作时:

select * from user where id in (1,2,3,4,5)

我们想将in后面的值当我们的参数传递出来,就需要foreach标签

  • 当mybatis传入参数为list集合的时候,mybatis会自动把其封装为一个map,会以“list”作为key,每个元素的值作为value,格式为 Map<“list”,value>;

  • 当mybatis传入参数为数组的时候mybatis会自动把其封装为一个map,会以“array”作为key,每个元素的值作为value,格式为Map<“array”,value>。

以下以传入数组为例



  • collection属性为参数名,数组传入时可以任意取名,但是进来后统一为array,集合同理。传入参数为对象属性时,写属性名

  • item属性为每个值的名字,和下面#{}中的名字保持一致

  • open属性为开始,将里面的字符串拼接进sql语句中

  • close属性为结束

  • separator属性为分隔符,决定每个参数以什么符号分隔

实现代码封装

作用:抽取重复的sql语句


	select * from user

如果要引入使用,则



下一篇
mybatis中的多表操作

你可能感兴趣的:(mybatis,mybatis,sql)