在今天使用Mybatis的xml文件中写sql语句时写入了一些特殊字符 如 < > & 等,但解析xml文件的时候会被转义,事实上并不但愿它被转义,可使用<![CDATA[ ]]>. 这是XML语法,在CDATA内部的全部内容都会被解析器忽略. 可是所以会致使<if test=""></if> <where></where> <choose></choose> <trim></trim>等标签自己功能失效,因此使用时把带有特殊字符的语句或字符自己放在<![CDATA[ ]]>内便可,即尽可能精确其做用范围.
也就是当你在使用有<if test=""></if> <where></where> <choose></choose> <trim></trim>的标签中使用 < > & 等特殊字符的时候,会出现xml语法错误,须要使用<![CDATA[ ]]>将 < > & 等特殊字符被解析器忽略,正确书写:sql
<select id="findChannelAlarmPage" resultType="DVBSChannelAlarmModel"> select * from dvbs_channel_alarm_tab where 1=1 <if test="queryMap.end_date != null"> <![CDATA[ and check_time <= #{queryMap.end_date} ]]> </if> </select>
bind 标签可使用 OGNL 表达式建立一个变量井将其绑定到上下文中。在前面的例子中,
UserMapper.xml 有一个 selectByUser 方法,这个方法用到了 like 查询条件,部分代码以下 。数据库
<if test=” userNarne != null and userNarne ! = ””> and user name like concat ( ’ 毛 ’, #{ userNarne },’ 毡 ’ ) </if>
使用 con cat 函数链接字符串,在 MySQL 中,这个函数支持多个参数,但在 Oracle 中只
支持两个参数。因为不 同数据库之间的语法差别 ,若是更换数据库,有些 SQL 语句可能就须要
重写。针对这种状况,可 以使用 bind 标签来避免因为更换数据库带来的一些麻烦。将上面的
方法改成 bind 方式后,代码以下。mybatis
<if test=” userNarne != null and userNarne !=””> <bind narne= " userNarneLike ” value = ”’ 草 ’+ userNarne + ’ 每 ’” / 〉 and user name like #{userNarneLike} </if>
bind 标签的两个属性都是必选项, name 为绑定到上下文的变量名, value 为 OGNL 表
达式。建立一个 bind 标签的变量后 , 就能够在下面直接使用,使用 bind 拼接字符串不只可
以免因更换数据库而修改 SQL,也能预防 SQL 注入。app
一、概述:函数
鉴别器在于肯定使用那个ResultMap来映射SQL查询语句,在实现中咱们每每有一个基类,而后能够派生一些类。好比咱们要选择一群人能够用List<Person>,然而Person里面有个性别sex,根据它还能够分为Male或者Female。鉴别器就要根据sex决定用Male仍是用Female相关的Mapper进行映射。spa
这些话仍是很抽象,不过提及鉴别器,语言真的很差用描述,不过没关系,咱们来看一个实例就豁然开朗了,咱们知道在上篇中咱们已经有了一个员工的POJO,而后继承这个POJO分红一个男性,一个女性的POJO。.net
二、实例:code
当咱们查询一批员工的时候,咱们但愿的是返回一个List<Employee>,而里面的元素根据性别(sex)自动匹配是MaleEmployee或者是FemaleEmployee,因而咱们须要根据sex的值去决定使用MaleEmployee或者是FemaleEmployee的resultMap去映射,这即是鉴别器。
---------------------
原文:https://blog.csdn.net/ykzhen2015/article/details/51249963 xml
mybatis三种批量插入方式对比:blog
https://blog.csdn.net/m0_37981235/article/details/79131493
Mybatis中进行批量更新(updateBatch):
https://blog.csdn.net/xyjawq1/article/details/74129316
https://blog.csdn.net/xu1916659422/article/details/77971696