关于java:MyBatis-的-4-个妙用别再踩坑了

2次阅读

共计 1426 个字符,预计需要花费 4 分钟才能阅读完成。

作者:悠悠 \
起源: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  &lt;= CURRENT_DATE AND end_date &gt;= 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 开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞 + 转发哦!

正文完
 0