作者:悠悠\
起源: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开发手册(嵩山版)》最新公布,速速下载!
感觉不错,别忘了顺手点赞+转发哦!