常见问题合集
编辑教程常见问题合集
总结一些基础的常见的Mybatis问题,方便自己,方便读者学习,内容不多
大于号、小于号在 sql 语句中的转换
使用 mybatis 时 sql 语句是写在 xml 文件中,如果 sql 中有一些特殊的字符的话,比如< ,<=,>,>=等符号,会引起 xml 格式的错误,需要替换掉,或者不被转义。 有两种方法可以解决:转义字符和标记 CDATA 块。
转义字符
<select id="searchByPrice" parameterType="Map" resultType="Product">
<!-- 方式1、转义字符 -->
select * from Product where price >= #{minPrice} and price <= #{maxPrice}
</select>
标记 CDATA
<select id="searchByPrice" parameterType="Map" resultType="Product">
<!-- 方式2、CDATA -->
<![CDATA[select * from Product where price >= #{minPrice} and price <= #{maxPrice} ]]>
</select>
转义字符表
转义 | 符号 |
---|---|
< | < |
> | > |
& | & |
' | ’ |
" | “ |
MyBatis 中的 resultType 和 resultMap
网上的总结很多,简单而言,resultType 用于返回值只有一个字段的类型,resultMap 用于返回值有多个字段的类型。至于结果是 List 还是一个,则在 Mapper 中定义返回值是List还是单个。
使用 resultType:
<select id="count" resultType="java.lang.Integer">
SELECT count(*) FROM USER
</select>
使用 resultMap:
<resultMap type="com.liulanghan.Blog" id="BlogResult">
<id column="id" property="id"/>
<result column="title" property="title"/>
<result column="content" property="content"/>
<result column="owner" property="owner"/>
</resultMap>
<select id="selectBlog" parameterType="int" resultMap="BlogResult">
select * from t_blog where id = #{id}
</select>
参数
Mapper 中需要用 @Param("queryDate")定义参数名称,sql 中用#{queryDate}使用参数,字符串也不需要引号。
参数判断和if的用法:
<if test="queryDate != null">
and queryDate >= #{queryDate}
</if>
when otherwise 就是 if else
<choose>
<when test="isDelete != null and isDelete == 0">
isDelete=0
</when>
<otherwise>
isDelete=1
</otherwise>
</choose>
如果要判断的字符串,则需要加引号
<when test="gender != null and gender == 'MALE'">
gender='MALE'
</when>
Mos固件,小电视必刷固件
ES6 教程
Vue.js 教程
JSON 教程
jQuery 教程
HTML 教程
HTML 5 教程
CSS 教程
CSS3 教程
JavaScript 教程
DHTML 教程
JSON在线格式化工具
JS在线运行
JSON解析格式化
jsfiddle中国国内版本
JS代码在线运行
PHP代码在线运行
Java代码在线运行
C语言代码在线运行
C++代码在线运行
Python代码在线运行
Go语言代码在线运行
C#代码在线运行
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。
大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
选择支付方式:
立即支付
¥
9.99
无法付款,请点击这里
金额: 0 元
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟