作者:悠悠 \
起源:http://uusama.com/356.html
Mybatis 是 Java 中一个十分好用的数据库框架,这儿记录一下在应用过程中遇到的坑。
官网中文文档地址:
http://www.mybatis.org/mybati…
1、在 Mybatis mapping.xml 映射配置文件中应用大于 > 号小于号 <
因为 Mybatis 的映射文件遵循 xml 文件的格局,所以不能应用像大于号或者小于号这样的 xml 文件特殊字符,须要应用转义字符代替。
< | < | 小于号 |
---|---|---|
> | > | 大于号 |
& | & | 和 |
‘ | ’ | 单引号 |
“ | “ | 双引号 |
能够应用:
SELECT * FROM test
WHERE 1 = 1 AND start_date <= CURRENT_DATE AND end_date >= CURRENT_DATE
<![CDATA[ when min(starttime)<='12:00' and max(endtime)<='12:00' ]]>
2、Mybatis 中应用 OGNL 表达式 test 比拟字符串
在 Mybatis 映射配置文件中,应用 OGNL 表达式 test 的时候,比拟字符串时,须要调用 toString() 办法保障 == 两边的值都是 String 类型。
<!-- 以下为谬误写法, 会抛 NumberFormatException 异样 -->
<if test="username =='U'">
<!-- 正确写法如下两种 -->
<if test="username =='U'.toString()">
<if test='username =="U"'>
3、Mybatis 实现 WHERE IN 查问
WHERE IN 查问中,IN 的参数是一个列表,须要传送一个列表参数,应用 foreach 实现。
<select id="selectPostIn" resultType="domain.blog.Post">
SELECT * FROM POST P
WHERE ID in
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
</select>
当应用可迭代对象或者数组时,index 是以后迭代的次数,item 的值是本次迭代获取的元素。当应用字典(或者 Map.Entry 对象的汇合)时,index 是键,item 是值。
你能够将任何可迭代对象(如列表、汇合等)和任何的字典或者数组对象传递给 foreach 作为汇合参数。
4、Mybatis 插入数据的时候返回插入记录的主键 id
在进行输出库插入的时候,如果咱们须要应用曾经插入的记录的主键,则须要返回方才插入的数据的主键 id。通过设置 insert 标签的 useGeneratedKeys 属性为 true 能够返回插入的记录的主键的 id。
<insert id="User" useGeneratedKeys="true" keyProperty="id"> </insert>
MyBatis 面试题和答案我都整顿好了,关注公众号 Java 技术栈,回复:面试,能够收费浏览。
近期热文举荐:
1.Java 15 正式公布,14 个新个性,刷新你的认知!!
2. 终于靠开源我的项目弄到 IntelliJ IDEA 激活码了,真香!
3. 我用 Java 8 写了一段逻辑,共事直呼看不懂,你试试看。。
4. 吊打 Tomcat,Undertow 性能很炸!!
5.《Java 开发手册(嵩山版)》最新公布,速速下载!
感觉不错,别忘了顺手点赞 + 转发哦!