mybatis一些需要注意的点,看看你有木有遇到过
ztj100 2025-01-07 17:22 11 浏览 0 评论
在开始文章之前,想随便说两句
近期工作比较忙,一直没时间去更新文章
原因:
1.懒
2.懒
3.懒
其实吧还有一部分原因是因为写这些文章,可能比较浅显。觉得没啥必要
但是应该还是能帮助一部分新手的
由于长期没更新文章,头条悄悄警告我说,再不发文你的黄V就会被取消。
好吧,想想如果取消了,下次再申请又得过各种优质
于是乎,今天就写点吧
写啥好呢,就随便说说我们常用的mybatis吧
主要是工作和学习中,遇到的意想不到的注意事项
希望能对你们有帮助
知道的大佬们可以忽略
mybatis是一个到目前为止还是比较常用的orm框架,虽然有缺点但是也有优点
我想大多数公司没选用hibernate、jpa可能由于业务上需要个性化定制sql,直接在mybatis xml里自由发挥比较爽,尽管它比较冗长
那么在使用mybatis时,笔者简单的分享下几个坑或者注意事项如下:
- xml里 if 针对于Integer、Short、Long等数字包装类判空的问题
<if test="id != null and id != ' ' ">
and id=#{id}
</if>
如上代码,如果id是String类型是没啥问题,但是碰到数字包装类时可能会和预想的情况截然相反。比如id=0,你想无论如何这个条件一定是true吧。因为0怎么可能等于null 或者等于空字符串呢?!
事实上id=0时,这个条件就是false。
看源码说明就知道为何了
源码:
If the object is a Number,
its double-precision floating-point value is compared with zero;
non-zero is treated as true, zero as false;
If the object is a Character, its boolean value is true if and only
if its char value is non-zero;
Otherwise, its boolean value is true if and only if it is non-null.
什么意思呢?
为了方便国人都能看懂,我就谷歌翻译一把,贴出来
如果对象是数字,
将其双精度浮点值与零进行比较;
非零被视为true,零被视为false;
如果对象是字符,则当且仅当其布尔值是true时
如果其char值不为零;
否则,当且仅当其为非null时,其布尔值才为true。
ok,看完应该就明白了吧。
- resultType和resultMap使用不当造成的问题
<!-- 错误写法 -->
<select id="query" resultMap="java.util.Map" >
<!-- 正确写法 -->
<select id="query" resultType="java.util.Map">
这个想必都遇到过,提一嘴是想说使用的时候注意下这个地方。至于两者区别,可以自己去百度,自己查的理解的比小编干说来的更实在
- xml 中sql参数接收不到值
可能因为dao层缺少了@param("参数名") 注解,这个参数名要和xml中的#{参数名} 一致
- 插入语句返回自增id主键的问题
这个需要在 xml 用 foreach 设置 useGeneratedKeys=”true”和keyProperty=”id”即可
ok,随便写点,希望能帮到一些条友。
先到这里吧~
相关推荐
- Whoosh,纯python编写轻量级搜索工具
-
引言在许多应用程序中,搜索功能是至关重要的。Whoosh是一个纯Python编写的轻量级搜索引擎库,可以帮助我们快速构建搜索功能。无论是在网站、博客还是本地应用程序中,Whoosh都能提供高效的全文搜...
- 如何用Python实现二分搜索算法(python二分法查找代码)
-
如何用Python实现二分搜索算法二分搜索(BinarySearch)是一种高效的查找算法,适用于在有序数组中快速定位目标值。其核心思想是通过不断缩小搜索范围,每次将问题规模减半,时间复杂度为(O...
- 路径扫描 -- dirsearch(路径查找器怎么使用)
-
外表干净是尊重别人,内心干净是尊重自己,干净,在今天这个时代,应该是一种极高的赞美和珍贵。。。----网易云热评一、软件介绍Dirsearch是一种命令行工具,可以强制获取web服务器中的目录和文件...
- 78行Python代码帮你复现微信撤回消息!
-
来源:悟空智能科技本文约700字,建议阅读5分钟。本文基于python的微信开源库itchat,教你如何收集私聊撤回的信息。...
- 从零开始学习 Python!2《进阶知识》 Python进阶之路
-
欢迎来到Python学习的进阶篇章!如果你说已经掌握了基础语法,那么这篇就是你开启高手之路的大门。我们将一起探讨面向对象编程...
- 白帽黑客如何通过dirsearch脚本工具扫描和收集网站敏感文件
-
一、背景介绍...
- Python之txt数据预定替换word预定义定位标记生成word报告(四)
-
续接Python之txt数据预定替换word预定义定位标记生成word报告(一)https://mp.toutiao.com/profile_v4/graphic/preview?pgc_id=748...
- Python——字符串和正则表达式中的反斜杠('\')问题详解
-
在本篇文章里小编给大家整理的是关于Python字符串和正则表达式中的反斜杠('\')问题以及相关知识点,有需要的朋友们可以学习下。在Python普通字符串中在Python中,我们用'\'来转义某些普通...
- Python re模块:正则表达式综合指南
-
Python...
- python之re模块(python re模块sub)
-
re模块一.re模块的介绍1.什么是正则表达式"定义:正则表达式是一种对字符和特殊字符操作的一种逻辑公式,从特定的字符中,用正则表达字符来过滤的逻辑。(也是一种文本模式;)2、正则表达式可以帮助我们...
- MySQL、PostgreSQL、SQL Server 数据库导入导出实操全解
-
在数字化时代,数据是关键资产,数据库的导入导出操作则是连接数据与应用场景的桥梁。以下是常见数据库导入导出的实用方法及代码,包含更多细节和特殊情况处理,助你应对各种实际场景。一、MySQL数据库...
- Zabbix监控系统系列之六:监控 mysql
-
zabbix监控mysql1、监控规划在创建监控项之前要尽量考虑清楚要监控什么,怎么监控,监控数据如何存储,监控数据如何展现,如何处理报警等。要进行监控的系统规划需要对Zabbix很了解,这里只是...
- mysql系列之一文详解Navicat工具的使用(二)
-
本章内容是系列内容的第二部分,主要介绍Navicat工具的使用。若查看第一部分请见:...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- Whoosh,纯python编写轻量级搜索工具
- 如何用Python实现二分搜索算法(python二分法查找代码)
- 路径扫描 -- dirsearch(路径查找器怎么使用)
- 78行Python代码帮你复现微信撤回消息!
- 从零开始学习 Python!2《进阶知识》 Python进阶之路
- 白帽黑客如何通过dirsearch脚本工具扫描和收集网站敏感文件
- Python之txt数据预定替换word预定义定位标记生成word报告(四)
- 假期苦短,我用Python!这有个自动回复拜年信息的小程序
- Python——字符串和正则表达式中的反斜杠('\')问题详解
- Python re模块:正则表达式综合指南
- 标签列表
-
- idea eval reset (50)
- vue dispatch (70)
- update canceled (42)
- order by asc (53)
- spring gateway (67)
- 简单代码编程 贪吃蛇 (40)
- transforms.resize (33)
- redisson trylock (35)
- 卸载node (35)
- np.reshape (33)
- torch.arange (34)
- node卸载 (33)
- npm 源 (35)
- vue3 deep (35)
- win10 ssh (35)
- exceptionininitializererror (33)
- vue foreach (34)
- idea设置编码为utf8 (35)
- vue 数组添加元素 (34)
- std find (34)
- tablefield注解用途 (35)
- python str转json (34)
- java websocket客户端 (34)
- tensor.view (34)
- java jackson (34)