之前在项目中遇到了在SQL中<=不识别的问题,在Navicat中语句正常,在xml中不识别,想起来就记录一下 项目用的是Mybatis,经过网上多次查询,验证,总结方法如下: 一.使用<![CDATA[ ]]>符号 例如:<![CDATA[ c.COUPON_MININUM <= #{COUPON_MININUM} ]]> 因为在XML中不允许出现“<”等符号,在经过“<![CDATA[ ]]>”处理的大于小于符就不会被解析 二.使用XML转义字符 &…
Mybatis中的sql语句中的  “<”  和   “>”  号要用转义字符   “<”   和  ”>“ ,否则会报错! 如查找年龄大于等于指定年龄的用户信息: SELECT * FROM T_USER WHERE AGE >=#{age} 进行转义: 原符号   <    <=    >    >=     &      '       " 替换符号 < <= > >= & &apos;…
mybatis动态sql中的两个内置参数(_parameter和_databaseId)   <!-- mybatis动态sql的两个内置参数           不只是方法传递过来的参数可以被用来判断,取值       mybatis默认还有两个内置参数           _parameter:代表整个参数                                      单个参数:_parameter就是这个参数                                   …
mybatis的sql中使用$会出现sql注入示例: 模拟简单登录场景: 页面代码: function login(){ //sql注入 var user = { username : "'李雪雷3' or 1=1", password : "'ab0715'", } $.ajax({ url: '/api/test/login.json', type: "POST", data: JSON.stringify(user),//将对象序列化成JS…
因为xml格式中,不能随便出现"<".“>”等符号,所以在sql中这一类的符号要进行特殊处理 第一种方法:使用转义字符替换特殊的符号 例如 SELECT * FROM jy_handle WHERE createTime > "2017-07-27 00:00:00" 可以转换为  SELECT * FROM jy_handle WHERE createTime > "2017-07-27 00:00:00"      …
set标记是mybatis提供的一个智能标记,我一般将其用在修改的sql中,例如以下情况: <update> update user <set> <if test="name != null and name.length()>0">name = #{name},</if> <if test="gender != null and gender.length()>0">gender = #{ge…
My Batis 官方文档 对 动态SQL中使用trim标签的场景及效果介绍比较少. 事实上trim标签有点类似于replace效果. trim 属性 prefix:前缀覆盖并增加其内容 suffix:后缀覆盖并增加其内容 prefixOverrides:前缀判断的条件 suffixOverrides:后缀判断的条件 比如: select b.* from sys_menu b where 1 = 1 <trim suffix="WHERE" suffixOverrides=&q…
foreach标签主要用于构建in条件,他可以在sql中对集合进行迭代.如下: <delete id="deleteBatch"> delete from user where id in <foreach collection="array" item="id" index="index" open="(" close=")" separator=",&qu…
where标记的作用类似于动态sql中的set标记,他的作用主要是用来简化sql语句中where条件判断的书写的,如下所示: <select id="selectByParams" parameterType="map" resultType="user"> select * from user <where> <if test="id != null ">id=#{id}</if&g…
1.用<sql>标签抽取可重用的sql片段 <!-- 抽取可重用的SQL片段,方便后面引用           1.sql抽取,经常将要查询的列名,或者插入用的列名,之后方便引用          2.include来引用已经抽取的sql            -->      <sql id="insertColumn">            ename,gender,email,did      </sql> 2.在多列名的sql中…