MyBatis 的 4 个妙用,别再踩坑了!
作者:悠悠
来源: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 <= 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 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 个妙用,别再踩坑了!相关推荐
- 15个必知的Mysql索引失效场景,别再踩坑了
背景 无论你是技术大佬,还是刚入行的小白,时不时都会踩到Mysql数据库不走索引的坑.常见的现象就是:明明在字段上添加了索引,但却并未生效. 前些天就遇到一个稍微特殊的场景,同一条SQL语句,在某些参 ...
- mybatis不等于某个字符串的值_MyBatis 的 4 个妙用,别再踩坑了!
1.在Mybatis mapping.xml映射配置文件中使用大于>号小于号< 由于Mybatis的映射文件遵循xml文件的格式,所以不能使用像大于号或者小于号这样的xml文件特殊字符,需 ...
- SpringBoot里实现幂等性有几种方法?看完这篇就不会再踩坑了
来源:mydlq.club/article/94/ 一.什么是幂等性 二.什么是接口幂等性 三.为什么需要实现幂等性 四.引入幂等性后对系统的影响 五.Restful API 接口的幂等性 六.如何实 ...
- 2023年highway-env更新之后的使用记录(含DDQN,DuelingDQN,DDQN+OtherChanges) 入门到入土,再踩坑就不玩原神了
写在前面: 在学习自动驾驶领域上的强化学习过程中,我决定使用highwy-env库建设的模拟器来进行环境构建,但是翻阅了众多教程(包含国内国外)之后,发现教程内容过旧,因为随着2023年的到来,hig ...
- (自用防再踩坑记录1)实现名字直接转化为拼音并添加入接口
首先安装汉字转拼音的第三方包,十分好用的包> pip install xpinyin 在serializers.py中的相应的serializer中添加如下代码: from xpinyin im ...
- mybatis mapper.xml dtd_全栈开发踩坑之路4-用MyBatis实现服务
1.前言 上一篇文章介绍了如何设计后端的Mysql数据库:Alex Wang:全栈开发踩坑之路3-MySql数据库设计,本文介绍如何用MyBatis实现后端服务. 本后端项目的Github地址(撰写中 ...
- mybatis学习与踩坑记录
mybatis resultmap高级映射 应用场景:如果sql查询的列名和pojo的属性名不一致,可以使用resultMap将列名和pojo的属性名作一个对应关系,就可以映射成功了.(如果返回值为i ...
- python去除中间空格只留一个_汇总初学Python的21个操作难点,看完别再去踩坑了...
初学Python时,不管是容易的操作难点,还是困难的操作难点,都是要一步步的去踩坑摸索得出结果,小编今天就给大家汇总初学时Python的21个操作难点,看完之后可别再去掉到同样的坑里去了. 1 查找当 ...
- java 铺地板问题_铺木地板的5大注意事项,我家接连踩坑接近“崩溃”,大家别再犯...
现代装修木地板是非常普遍的装修主材,小编本身作为家居博主一枚,基本遇到一大半的装修案例都会在家中铺设木地.无论是实木地板还是复合地板,无论价格昂贵或者便宜,木地板带来的视觉效果是有质感而且十分温馨的. ...
- 不要再吐槽我R7000 2020的龙腾屏了,我给它换上了京东方的4K屏(已经填坑,谨慎踩坑)
(20210802)更新:屏幕已经换好了,这里提醒一下拆散热铜管最好准备硅脂,因为拆铜管的话,基本都是要重新涂硅脂的.因为拆过一次,这花了不到一个小时就搞定了.换完没有任何问题.诶..这也算是体验4K ...
最新文章
- LeetCode实战:环形链表 II
- sudo找不到命令:修改sudo的PATH路径
- C语言 标识符的作用域
- python 利用 for ... else 跳出双层嵌套循环
- 画图讲解SQL join 语句
- win10计算机磁盘图标,Win10 21H1怎么更换电脑磁盘的图标标识
- python请求模块requests的session不能保存cookies的情况
- Lambda表达式公共拼接函数(原创)
- 17.高性能MySQL --- MySQL 分支与变种
- pcs7更改项目计算机名时出错,pcs7的C/S模式,从AS下装到OS或客户机项目时出错-工业支持中心-西门子中国...
- win8更改计算机锁屏时间,在win8系统中设置自动锁屏功能的方法
- tk域名管理后台_TK域名解析教程,dns设置教程
- Glide原生方法加载圆形图片
- 资源、角色、用户、岗位的关系(工作中用到的)
- html div浏览器居中显示,IE浏览器DIV居中实现方法
- 官宣!成都链安在北京成立分部啦!
- EndNote20 快捷键
- Altium Designer 20 安装方法及步骤
- 14晶体三极管的三个工作区域
- 漫画算法-学习笔记(17)