Mybatis中resultMap和 特殊字符转意 的浅析
2020-02-06 11:46
169 查看
Mybatis之ResultMap映射
适用场景:
当查询出来的字段名和对象中的属性名不一致的情况,就没办法使用resultType来默认映射(同名规则)
使用resultMap来映射数据库中的字段到底注入到对象中什么属性中.
具体操作:
<!-- 关联关系 所有的column:都是数据库相关的列 所有的property:都是类里面的属性 --> <resultMap type="com.xinghe.carCon.system.pojo.ASms" id="resultMap"> <!-- 关联字段需要额外赋值 select:查询关联关系的sql语句 --> <id column="d_id" property="id"/> <result column="smsTemplateId" property="smsTemplateId"/> <association property="smsTemplate" column="smsTemplateId" javaType="com.xinghe.carCon.system.pojo.ASmsTemplate" select="com.xinghe.carCon.system.dao.IASmsTemplateDao.selectById"/> </resultMap>
Mybatis 之<![CDATA[ ]]>浅析
在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被
转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]>来解决。
如果文本包含了很多的"<“字符 <=和”&"字符——就象程序代码一样,那么最好把他们都放到CDATA部件中。
但是有个问题那就是
<if test=""> </if> <where> </where> <choose> </choose> <trim> </trim>等这些标签都不会被解
析,所以我们只把有特殊字符的语句放在 <![CDATA[ ]]> 尽量缩小 <![CDATA[ ]]> 的范围。
具体操作:
<select id="findList" resultMap="resultMap"> select * from a_sms <!-- 查询条件 --> <where> <!-- 关键字搜索; 其中keyword为parameterType中类型map的键; mybatis底层会将map的值赋值给键对应的点位符 --> <if test="keyword != null and keyword != ''"> and ( name like #{keyword} or content like #{keyword} ) </if> <!-- 按照状态查询 --> <if test="status != null and status != ''"> and status = #{status} </if> <!-- 按照时间范围查询 --> <if test="stDate != null and edDate != null"> <!-- 如果XML中有特殊字符需要转义 --> <![CDATA[ and pubTime > #{stDate} and pubTime < #{edDate} ]]> </if> </where> <!-- 排序 --> <choose> <when test="orderBy = 'idDesc'"> order by id desc </when> <otherwise> <!-- 按照发布时间倒序 --> order by pubTime desc </otherwise> </choose> </select>
因为这里有 “>” “<” 特殊字符所以要使用 <![CDATA[ ]]> 来注释,但是有
<if>标签,所以把
<if>等标签放在<![CDATA[ ]]>外面
- 点赞 1
- 收藏
- 分享
- 文章举报
相关文章推荐
- Mybatis中的resultType和resultMap(mybatis执行ddl语句和特殊sql语句)
- MyBatis ResultMap(2)
- mybatis百科-结果集映射类ResultMap
- Mybatis的ResultMap的使用(转)
- Mybatis 错误:Result Maps collection does not contain value for java.util.Map
- MyBatis框架核心之(四)Mapper文件使用resultMap及多表查询
- MyBatis中resultType和resultMap的区别
- 大神带你重新认识Mybatis中强大的resultMap
- [mybatis]ResultMap输出结果映射
- MyBatis查询定义resultType="java.util.Map"
- SQL语句生成表结构对应的javabean及mybatis的resultMap
- Mybatis中resultMap
- 博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(4)
- Mybatis特殊字符处理的详解
- MyBatis中association,collection多表查询(resultMap高级映射)笔录
- MyBatis学习 之 二、SQL语句映射文件(1)resultMap
- mybatis元素类型为 "resultMap" 的内容必须匹配 "(constructor?,id*,result*,association报错解决
- MyBatis之ResultMap简介,关联对象
- mybatis记录随便(一)resultMap配置说明
- Mybatis的ResultMap的使用