mybatis--4 动态查询

查询的时候如果某些条件没带可能sql拼装会有问题
1、给where后面加上1=1,以后的条件都andXXX.
2、mybatis使用where标签来将所有的查询条件包括在内。如果标签返回的内容是以 AND 或OR 开头的,则它会剔除掉r

后面多出的and或者or where标签不能解决
prefix=":前缀: trim标签体中是整个字符串拼串后的结果。
prefix给拼串后的整个字符串加一个前缀
prefixOverrides="" :前缀覆盖:去掉整个字符串前面多余的字符
suffix="":后缀:suffix给拼串后的整个字符串加一个后缀
suffixOverrides=后缀覆盖:去掉整个字符串后面多余的字符

set标签:解决:当 update 语句中没有使用 if 标签时,如果有一个参数为 null,都会导致错误。当在 update 语句中使用if标签时,如果前面的if没有执行,则或导致逗号多余错误。

foreach标签:

collection:指定要遍历的集合:
list类型的参数会特殊处理封装在map中,map的key就叫list
item:将当前遍历出的元素赋值给指定的变量
separator:每个元素之间的分隔符
open:遍历出所有结果拼接一个开始的字符
close:遍历出所有结果拼接一个结束的字符
index:索引。遍历list的时候是index就是索引,item就是当前值
遍历map的时候index表示的就是map的key, item就是map的值
#{变量名}就能取出变量的值也就是当前遍历出的元素

批量保存:

第一种方式:

第二种方式:

配置文件中加入允许批量操作:

oracle中不允许第一种的语法,所以:

第一种批量保存方法采用如下语法:

第二种批量保存方法采用如下语法:

mybatis默认两个内置参数:
不只是方法传递过来的参数可以被用来判断,取值。。。
_parameter: 代表整个参数
单个参数:_ parameter就是这个参数
多个参数:参数会被封装为一个map;_ parameter就是代表这个map


_databaseId :如果配置了databaseIdProvider标签。
_databaseId就是代表当前数据库的别名oracle

bind标签:


1、sql抽取:经常将要查询的列名,或者插入用的列名抽取出来方便引用
2、include来引用已经抽取的sq1:
3、include还可以自定义一些property, sql标签内部就能使用自定义的属性
include- property:取值的正确方式${prop},
#{不能使用这种方式}

引用:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值