mbatis中的模糊查询

ibatis的模糊查询:
like CONCAT('%',#name#,'%');
like '%$name$%'
这里只能用$name$不能用#name#也不能${name}

mybatis的模糊查询:
like CONCAT('%',#name#,'%');
like '%${name}$%'
如果出现There is no getter for property named 'name' in 'class java.lang.String
不管你的参数是什么,都要改成"[b]_parameter[/b]"
like '%${_parameter}$%'
在 Oracle 数据库中,IN 子句中最多只能包含 1000 个元素。如果需要查询的元素数量超过了 1000,那么就需要对 IN 子句进行切片,将查询任务拆分成多次执行。 MyBatis 提供了一个 foreach 元素,可以用于将一个集合中的元素拆开,生成多个 SQL 语句。通过在 foreach 元素中指定 collection 属性为需要查询的元素列表,item 属性为当前元素的别名,open 属性为 SQL 语句的开头,close 属性为 SQL 语句的结尾,separator 属性为 SQL 语句中每个元素之间的分隔符,就可以生成多个带有 1000 个元素的 IN 子句的 SQL 语句。 例如,假设需要查询一个表中某个字段的值等于一组 ID 的记录,其中 ID 的数量可能超过 1000,可以使用以下方式: ```xml <select id="selectByIds" resultMap="resultMap"> SELECT * FROM my_table WHERE id IN <foreach collection="ids" item="id" open="(" close=")" separator=","> #{id} </foreach> </select> ``` 其中,ids 是一个包含所有 ID 的列表。 MyBatis 在解析以上 SQL 语句时,会将 ids 列表中的元素逐个拆开,生成多个 SQL 语句,每个 SQL 语句中包含 1000 个 ID。MyBatis 会依次执行这些 SQL 语句,最终将所有查询结果合并返回给调用者。 需要注意的是,将查询任务拆分成多个子任务会增加数据库的负担。因此,需要根据实际情况选择合适的切片大小,以及合适的切片方式,以保证查询效率和数据库性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值