【DB 系列】Mybatis 之本义符的应用姿态
在 mybatis 的 xml 文件中间接写 sql 比拟不便简洁,然而须要留神的是,在 xml 文件中,常常会遇到一些须要本义的场景,比方查问 id < xxx
的数据,这个小于号就不能间接写在 sql 中,接下来咱们将看一下,mybatis 中的有哪些本义符,能够怎么解决本义问题
<!– more –>
I. 本义
1. 本义符
在 mybatis 的 xml 文件中,咱们最常见的本义符为小于号,如查问 id 小于 100 的数据
<select id="xxx">
select * from `money` where id < #{id}
</select>
留神下面的 sql,小于号理论应用的是 <
,不能间接应用 <
,比方间接应用小于号,在 idea 中会有如下的谬误提醒
日常开发中除了下面的小于号之外,另外一个常见的则是 &
与操作符,如果 sql 中有位操作的场景,同样须要本义
<select id="xxx">
-- select * from `money` where id & 1 = 1 的 sql,须要如下本义
select * from `money` where id & 1 = 1
</select>
在 mybatis 中常见的几个转义字符表映射关系如下表(mybatis 的本义实际上齐全遵循的是 xml 本义规定,次要有上面几个)
符号 | 本义 | 阐明 |
---|---|---|
< | < | 小于 |
> | > | 大于 |
& | & | 与 |
‘ | ‘ | 单引号 |
“ | “ | 双引号 |
2. <![CDATA[]]> 写法
通过本义的形式尽管简略,然而有一个问题就是不够直观,在浏览 sql 时,还须要在脑海里反本义一下,这样就不太敌对了,好在 xml 提供了 CDATA 的语法,被包裹在它外部的语句,不会被 xml 解析器进行解析
如通过上面的写法来写与操作
<select id="queryBitCondition" resultType="long">
select id from money where <![CDATA[ `money` & #{bit} = #{bit} ]]>
</select>
应用这种形式时,须要留神:
- 不反对嵌套的写法
- 结尾符
]]>
留神与起始符配套应用
III. 不能错过的源码和相干知识点
0. 我的项目
- 工程:https://github.com/liuyueyi/spring-boot-demo
- 源码:https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-boot/103-mybatis-xml
系列博文:
- 【DB 系列】Mybatis 系列教程之 CURD 根本应用姿态
- 【DB 系列】Mybatis 系列教程之 CURD 根本应用姿态 - 注解篇
- 【DB 系列】Mybatis 之参数传递的几种姿态
1. 微信公众号: 一灰灰 Blog
尽信书则不如,以上内容,纯属一家之言,因集体能力无限,不免有疏漏和谬误之处,如发现 bug 或者有更好的倡议,欢送批评指正,不吝感谢
上面一灰灰的集体博客,记录所有学习和工作中的博文,欢送大家前去逛逛
- 一灰灰 Blog 集体博客 https://blog.hhui.top
- 一灰灰 Blog-Spring 专题博客 http://spring.hhui.top