Mybatis 中的转义字符及常用查询
转译符
1、特殊字符转译
< < 小于
> > 大于
& & 与
' ’ 单引号
" " 双引号
需要注意的是分号是必不可少的。 比如 a > b 我们就写成 a > b
(分号需为英文状态下的,应为英文分号会将转译符直接显示为对应的符号,所以本文都是中文下的)
2、
在mybatis中这种符号将不会解析。如
常用的sql语句写法
1、模糊查询
user_name like CONCAT("%",#{userName},"%") and
2、月份查询
输入月份(2019-01),查找属于这个月份的记录
DATE_FORMAT(start_time,'%Y-%m') DATE_FORMAT(#{theMonth},'%Y-%m')
and
DATE_FORMAT(end_time,'%Y-%m') = ]]>DATE_FORMAT( #{theMonth},'%Y-%m')
and
2019-01-01 00:00:00 >= '2019-01’不成立。
因为数据库数据是一月一号,2019-01-01当然比2019-01大,所以直接查找是找不到数据的,因此需要用DATE_FORMAT函数将时间格式化为2019-01-00 00:00:00 再去对比。2019-01-00 00:00:00 >= ‘2019-01’ 成立
DATE_FORMAT常用的正则表达式(%Y-%m-%d %H:%i:%S)
3、时间区间查找
查找数据库记录的创建时间在要查找的时间区间内的数据
create_time =]]>#{startTime}
and
create_time #{endTime}
如果数据库的时间和输入查询条件的时间精度不一致时也需要如上格式化
4、批量添加
parameterType="com.safety.exam.entity.MessageReceive"
useGeneratedKeys="true" keyProperty="id">
insert into
user
name,
age
values
separator=",">
#{item.name},
#{item.age},
相当于insert into user (name,age)values (张,20),(李,21),(王,22)·····
5、批量更新
parameterType="com.safety.exam.entity.StaffAccount"
useGeneratedKeys="true" keyProperty="id">
update user set
name =
open="case id" close="end">
when #{item.id} then #{item.name}
,
age =无锡人流多少钱 http://www.bhnfkyy.com/
open="case id" close="end">
when #{item.id} then #{item.age}
where id in
separator="," open="(" close=")">
#{item.id}
注意: set关键字只有一个;每个foreach之间有个逗号。
最后sql是这样:
UPDATE categories SET
display_order = CASE id
WHEN 1 THEN 3
WHEN 2 THEN 4
WHEN 3 THEN 5
END,
title = CASE id
WHEN 1 THEN 'New Title 1'
WHEN 2 THEN 'New Title 2'
WHEN 3 THEN 'New Title 3'
END
WHERE id IN (1,2,3)
Mybatis 中的转义字符及常用查询的更多相关文章
- mybatis中_parameter使用和常用sql
mybatis中_parameter使用和常用sql mybatis中_parameter使用和常用sql 在用自动生成工具生成的mybatis代码中,总是能看到这样的情况,如下: <sel ...
- Mybatis 中的转义字符
记录以下mybatis中的转义字符,方便以后自己看一下 Mybatis转义字符表 < < 小于 > > 大于 & & 与 ' ' 单引号 &q ...
- Mybatis中动态SQL多条件查询
Mybatis中动态SQL多条件查询 mybatis中用于实现动态SQL的元素有: if:用if实现条件的选择,用于定义where的字句的条件. choose(when otherwise)相当于Ja ...
- Mybatis 中的转义字符(转帖)
下文来自:https://www.cnblogs.com/dato/p/7028723.html 在此感谢作者的辛勤付出. 记录以下mybatis中的转义字符,方便以后自己看一下 Mybatis转义 ...
- Mybatis中多表联查,查询出来的字段出现重名,造成数据异常的解决方法!
在做一对多出现的问题,引发的思考:当数据库表中,主表的主键id和明细表的中的字段名相同时怎么办?Mybatis进行自动映射赋值的时候会不会出现异常? 注意:M ...
- Mybatis笔记四:Mybatis中的resultType和resultMap查询操作实例详解
resultType和resultMap只能有一个成立,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,resultMap解决复杂查询是的映射问题.比 ...
- Mybatis中的关联映射和查询
一.商品订单数据模型 1.数据表 这里定义了四个表,分别表示用户,商品,订单,和订单详情. 用户表user CREATE TABLE `user` ( `id` int(11) NOT NULL AU ...
- mybatis的xml中特殊转义字符和模糊查询like的写法
做个备忘: xml特殊符号转义写法 < < > > <> <> & & &ap ...
- 解决在mybatis中使用CTE进行oracle查询数据类型为long的字段出现流关闭问题
今天把notice表中的content字段改为long字段后,含有该字段的使用CTE的查询语句报错了.提示一下错误 ### Cause: java.sql.SQLException: 流已被关闭 ; ...
随机推荐
- 【phpstudy2016】apache配置Tp5.0,获取表单数据总是多了一个路由变量,解决
1.用的apahce配置tp5.0的php环境 2.发现input()过来的数据,总是多了一个变量,那就是路由变量, 类似[array(2) { ["/index/index/form_su ...
- (mysql)找不到请求的.Net Framework Data Provider。可能没有安装
webconfig配置以下节点(注意版本号) 将下面代码放在machine.config中文件,如何Web.config文件没有配置,需要添加 <system.data> <DbPr ...
- Java8 lambda表达式10个示例<转>
例1.用lambda表达式实现Runnable 我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例.看一下Java 8之前的runna ...
- 关于aardio修改注册表默认键值的问题(转)
今天用aardio做注册表练习 遇到一个问题. 就是不知道怎么用aardio修改已存在的默认的注册表键的值.. 导出注册信息看了一下 默认的和普通的键值不太一样 形式是 @="要写入 ...
- chrome 报错 ERR_CERT_AUTHORITY_INVALID
场景: 本地调试https/wss程序,使用了openssl自签名的证书,解决方法:添加到信任证书 根据以下图片流程操作 然后 打开selfsigned.cer 清空该网站缓存 参考资料: https ...
- [Py] 简单的 Python 运行环境
python:https://www.python.org/downloads/ pip:https://pip.pypa.io/en/stable/installing/#upgrading-pip ...
- 使用vue搭建应用四引入axios
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中 特性 从浏览器中创建 XMLHttpRequests 从 node.js 创建 http 请求 支持 P ...
- prototype和__proto__的关系是什么?
我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个对象,它的用途是包含可以由特定类型的所有实例共享的属性和方法.(这个对象下面有个属性,这个属性是另外一个对象的应用 ,这个属性就 ...
- 关于Oracle报 ORA-00600: 内部错误代码, 参数: [kkqcscpopn_Int: 0], [], [], [], [], [], [], [], [], [], [], []解决
服务器上有的Oracle版本是11.2.0.1.0,但是用到了mybatis-PageHelper分页插件会报这个错误. 下面说说我是怎么遇到这个错误的:同事写的这个功能点是用到了前台分页,是正常的没 ...
- shell 编写脚本批量Ping IP
服务器总是一下子买了很多的段的ip.通过绑定后,也不知道这些ip是否绑定成功,所以就写了一个shell脚本,把ip输好,批量ping一下,看是不是都能ping通. 脚本如下: 此外.还有一个ip文件, ...