Mybatis 是 JAVA 中一个非常好用的数据库框架,这儿记录一下在使用过程中遇到的坑 。
官方中文文档地址:
【MyBatis 的 4 个妙用,别再踩坑了】http://www.mybatis.org/mybatis-3/zh/getting-started.html1、在Mybatis mApping.xml映射配置文件中使用大于>号小于号<由于Mybatis的映射文件遵循xml文件的格式,所以不能使用像大于号或者小于号这样的xml文件特殊字符,需要使用转义字符代替 。整理了一份272页MybatisPDF文档
<
小于号
>
>
大于号
&
&
和
'
’
单引号
"
“
双引号
可以使用:
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 。整理了一份272页MybatisPDF文档
<insert id="User" useGeneratedKeys="true" keyProperty="id"> </insert>
推荐阅读
- 生源地贷款lpr浮动利率和固定利率选哪个?
- .cn表示的是什么网站?
- 阿里+腾讯资深架构师方案-高并发系统下的服务治理
- 职场人士必学的20个PPT技巧
- 唐朝经济发展繁荣的表现,唐朝经济繁荣的具体表现-
- 安庆绪被谁杀的,安禄山儿子安庆绪什么下场-
- 搭建开源美观的数据库监控系统-Lepu
- 佛教中的四大菩萨有哪些,佛教中的八大菩萨-
- Python的各种框架
- MyBatisPlus又在搞事了!发布神器,一个依赖轻松搞定权限问题