作者:悠悠
来源:http://uusama.com/356.html
Mybatis 是 Java 中一个非常好用的数据库框架,这儿记录一下在使用过程中遇到的坑。
官方中文文档地址:
http://www.mybatis.org/mybatis-3/zh/getting-started.html
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 PWHERE 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 系列面试题和答案我都整理好了,关注公众号互联网架构师,回复:2T,可以免费阅读。

关注微信公众号:互联网架构师,在后台回复:2T,可以获取我整理的教程,都是干货。

猜你喜欢

1、GitHub 标星 3.2w!史上最全技术人员面试手册!FackBoo发起和总结

2、如何才能成为优秀的架构师?

3、从零开始搭建创业公司后台技术栈

4、程序员一般可以从什么平台接私活?

5、37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...

6、滴滴业务中台构建实践,首次曝光

7、不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事

8、15张图看懂瞎忙和高效的区别

9、2T架构师学习资料干货分享

MyBatis 的 4 个妙用,别再踩坑了!相关推荐

  1. 15个必知的Mysql索引失效场景,别再踩坑了

    背景 无论你是技术大佬,还是刚入行的小白,时不时都会踩到Mysql数据库不走索引的坑.常见的现象就是:明明在字段上添加了索引,但却并未生效. 前些天就遇到一个稍微特殊的场景,同一条SQL语句,在某些参 ...

  2. mybatis不等于某个字符串的值_MyBatis 的 4 个妙用,别再踩坑了!

    1.在Mybatis mapping.xml映射配置文件中使用大于>号小于号< 由于Mybatis的映射文件遵循xml文件的格式,所以不能使用像大于号或者小于号这样的xml文件特殊字符,需 ...

  3. SpringBoot里实现幂等性有几种方法?看完这篇就不会再踩坑了

    来源:mydlq.club/article/94/ 一.什么是幂等性 二.什么是接口幂等性 三.为什么需要实现幂等性 四.引入幂等性后对系统的影响 五.Restful API 接口的幂等性 六.如何实 ...

  4. 2023年highway-env更新之后的使用记录(含DDQN,DuelingDQN,DDQN+OtherChanges) 入门到入土,再踩坑就不玩原神了

    写在前面: 在学习自动驾驶领域上的强化学习过程中,我决定使用highwy-env库建设的模拟器来进行环境构建,但是翻阅了众多教程(包含国内国外)之后,发现教程内容过旧,因为随着2023年的到来,hig ...

  5. (自用防再踩坑记录1)实现名字直接转化为拼音并添加入接口

    首先安装汉字转拼音的第三方包,十分好用的包> pip install xpinyin 在serializers.py中的相应的serializer中添加如下代码: from xpinyin im ...

  6. mybatis mapper.xml dtd_全栈开发踩坑之路4-用MyBatis实现服务

    1.前言 上一篇文章介绍了如何设计后端的Mysql数据库:Alex Wang:全栈开发踩坑之路3-MySql数据库设计,本文介绍如何用MyBatis实现后端服务. 本后端项目的Github地址(撰写中 ...

  7. mybatis学习与踩坑记录

    mybatis resultmap高级映射 应用场景:如果sql查询的列名和pojo的属性名不一致,可以使用resultMap将列名和pojo的属性名作一个对应关系,就可以映射成功了.(如果返回值为i ...

  8. python去除中间空格只留一个_汇总初学Python的21个操作难点,看完别再去踩坑了...

    初学Python时,不管是容易的操作难点,还是困难的操作难点,都是要一步步的去踩坑摸索得出结果,小编今天就给大家汇总初学时Python的21个操作难点,看完之后可别再去掉到同样的坑里去了. 1 查找当 ...

  9. java 铺地板问题_铺木地板的5大注意事项,我家接连踩坑接近“崩溃”,大家别再犯...

    现代装修木地板是非常普遍的装修主材,小编本身作为家居博主一枚,基本遇到一大半的装修案例都会在家中铺设木地.无论是实木地板还是复合地板,无论价格昂贵或者便宜,木地板带来的视觉效果是有质感而且十分温馨的. ...

  10. 不要再吐槽我R7000 2020的龙腾屏了,我给它换上了京东方的4K屏(已经填坑,谨慎踩坑)

    (20210802)更新:屏幕已经换好了,这里提醒一下拆散热铜管最好准备硅脂,因为拆铜管的话,基本都是要重新涂硅脂的.因为拆过一次,这花了不到一个小时就搞定了.换完没有任何问题.诶..这也算是体验4K ...

最新文章

  1. LeetCode实战:环形链表 II
  2. sudo找不到命令:修改sudo的PATH路径
  3. C语言 标识符的作用域
  4. python 利用 for ... else 跳出双层嵌套循环
  5. 画图讲解SQL join 语句
  6. win10计算机磁盘图标,Win10 21H1怎么更换电脑磁盘的图标标识
  7. python请求模块requests的session不能保存cookies的情况
  8. Lambda表达式公共拼接函数(原创)
  9. 17.高性能MySQL --- MySQL 分支与变种
  10. pcs7更改项目计算机名时出错,pcs7的C/S模式,从AS下装到OS或客户机项目时出错-工业支持中心-西门子中国...
  11. win8更改计算机锁屏时间,在win8系统中设置自动锁屏功能的方法
  12. tk域名管理后台_TK域名解析教程,dns设置教程
  13. Glide原生方法加载圆形图片
  14. 资源、角色、用户、岗位的关系(工作中用到的)
  15. html div浏览器居中显示,IE浏览器DIV居中实现方法
  16. 官宣!成都链安在北京成立分部啦!
  17. EndNote20 快捷键
  18. Altium Designer 20 安装方法及步骤
  19. 14晶体三极管的三个工作区域
  20. 漫画算法-学习笔记(17)

热门文章

  1. FreeBSD磁盘标签实例分析
  2. angular表单验证
  3. 百度安全专家盘点:非官方购火车票渠道 几乎都不靠谱
  4. 【ORACLE】ORA-12547: TNS:lost contact
  5. 程序员应知——我们不是客户
  6. poj 3667 Hotel 线段树 内存分配问题
  7. poj 1151 hdu 1542 Atlantis 线段树扫描线(详细讲解)
  8. 如何从视频中删除声音?
  9. ReiBoot Pro for Mac(iOS系统修复软件)
  10. Nginx、Apache工作原理以及nginx为何比Apache高效