Mybatis 处理集合 特殊符号
来源:互联网 发布:java枚举的声明 编辑:程序博客网 时间:2024/05/20 10:51
Mybatis 处理集合 特殊符号
在Mybatis的xml配置中使用集合,主要是用到了foreach动态语句。
foreach的参数:
foreach元素的属性主要有 item,index,collection,open,separator,close。
item表示集合中每一个元素进行迭代时的别名.
index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置.
open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符.
close表示以什么结束。
- Mybatis生成delete from table where id in(1,2,…,n)语句的查询
我们一般的做法是在方法的参数处指定传入的参数名称,在xml中使用的时候,集合的名称要和方法的Param的名称一致,这样便于阅读和理解,然后是在对应的xml文件中使用foreach循环。
java代码如下:
Integer updateRecommProduct(@Param("recommId") String recommId, @Param("goodsCodes") String[] goodsCodes);
对应的xml代码如下:
<update id="deleteRecommProduct" parameterType="String"> update t_prefecture_goods_shop set status=2 where prefecture_id=#{recommId} and goodscode in <foreach item="goodsCode" index="index" collection="goodsCodes" open="(" separator="," close=")"> #{goodsCode} </foreach> </update>
以上方法Mybatis会帮我们进行sql注入拦截,Mybatis如果采用#{xxx}的形式设置参数,Mybatis会进行sql注入的过滤。如果采用的是${xxx},Mybatis不会进行sql注入过滤,而是直接将参入的内容输出为sql语句。
大于号(>)小于号(<)的处理
错误示例
select * from test where id>=10 and id<=20
这里会抛出
Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 74; columnNumber: 17; 元素内容必须由格式正确的字符数据或标记组成。
正确的应该是
select * from test where id>=10 and id<=20
这是因为Mybatis 对特殊字符做了转义处理。所以在使用的时候,也应该注意特殊字符要提前转义。
以下是对照表
<
< 小于号 >
> 大于号 &
& 和 '
’ 单引号 "
“ 双引号 0 0
- Mybatis 处理集合 特殊符号
- mybatis的xml中特殊符号的处理
- Mybatis SQL处理大于小于等特殊符号的替换符号
- mybatis 特殊符号转义笔记
- Mybatis中多个集合的迭代处理
- mybatis处理数组集合等方法
- mybatis where 条件为list集合处理
- mybatis在xml文件中处理特殊符号(大于号小于号等的方法)
- mybatis在xml文件中处理特殊符号(大于号小于号等的方法)
- mybatis在xml文件中处理特殊符号(大于号小于号等的方法)
- 数据特殊符号处理
- 特殊符号的处理
- Ibatis 特殊符号处理
- oracle 特殊符号'&'的处理
- java处理特殊符号
- URL特殊符号的处理
- xml特殊符号处理
- Oracle 特殊符号'&'的处理
- android随笔14——短信备份以及xml解…
- android随笔15——注册锁屏广播以及…
- eclipse 中全局替换
- android随笔16——对文件进行MD5加密…
- Android.mk 文件语法详解
- Mybatis 处理集合 特殊符号
- 尝试Swift包管理工具
- Phpcms V9.5.10 广告模块无法保存配置文件BUG修复
- SolrCloud分布式检索时忽略宕机的Shard
- leetcode刷题日记——Remove Duplicates from Sorted Array
- HDU5170PM2.5
- Android.mk的用法和基础
- 【Cocos2d-x】之随机数的产生
- 利用javabean技术封装对象