mybatis 对于生成的sql语句 自动加上单引号的情况详解
作者:那些年欠下的技术债 发布时间:2023-09-21 15:25:00
标签:mybatis,sql语句,单引号
对于生成的sql语句 自动加上单引号的情况
mybatis是这样的,如果表的字段跟系统字段冲突,写sql语句的时候必须得加上单引号,这样才会区分
mySQL中replace的用法
1.replace into
replace into table (id,name) values(‘1',‘aa'),(‘2',‘bb')
此语句的作用是向表table中插入两条记录。如果主键id为1或2不存在
就相当于
insert into table (id,name) values(‘1',‘aa'),(‘2',‘bb')
如果存在相同的值则不会插入数据
2.replace(object,search,replace)
把object中出现search的全部替换为replace
select replace(‘www.baicai.net',‘w',‘Ww')—>WwWwWw.baicai.net
例:把表table中的name字段中的aa替换为bb
update table set name=replace(name,‘aa',‘bb')
mybatis中IFNULL(P1,P2)函数的用法
select md.valueofdouble, md.periodcode
from meas_data md
WHERE objectcode="YQ"
AND datatime="2017-5-25 00:00:00"
AND measurementcode="PI_DRFDL
select md.valueofdouble, IFNULL(md.periodcode,0)
from meas_data md
WHERE objectcode="YQ"
AND datatime="2017-5-25 00:00:00"
AND measurementcode="PI_DRFDL"
总结:
1、IFNULL(P1,P2)如果P1不为空,则返回值为P1;P1为NULL,则返回为P2;P2有点类似替补球员;
2、注意,IFNULL只是针对局部字段的替换;如果整个结果查出来都是空,则不能使用IFNULL(P1,P2)
select md.valueofdouble, md.periodcode
from meas_data md
WHERE objectcode="YQ"
AND datatime="2017-5-25 00:00:01"
AND measurementcode="PI_DRFDL"
select md.valueofdouble, IFNULL(md.periodcode,0)
from meas_data md
WHERE objectcode="YQ"
AND datatime="2017-5-25 00:00:01"
AND measurementcode="PI_DRFDL"
mybatis单引号字母逻辑处理的一个坑
记录一个mybatis的坑,test中单个字母单引号包括会处理成Object,默认为数值,在与字符串双等时或者调用equals时会过不去,需要加上toString()先进行转换
原因分析
因为mybatis是用OGNL表达式来解析的,所以在OGNL的表达式中,'A’会被解析成字符,同时java又是强类型的,char 和 一个string 是不等的,所以if标签中的sql不会被解析。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
来源:https://blog.csdn.net/pdsuxueyuan/article/details/86544902


猜你喜欢
- Android 遍历SDCARD的文件夹并显示目录信息private String mResult = new String(); priv
- 本文实例为大家分享了Unity通过代码修改按钮点击效果的具体代码,供大家参考,具体内容如下效果:创建一个脚本,挂载到按钮上,主要是实现鼠标移
- starter起步依赖starter起步依赖是springboot一种非常重要的机制,它打包了某些场景下需要用到依赖,将其统一集成到star
- 近期遇到了DateTime到底是值类型还是引用类型的疑惑,顺势较深入地了解一下DateTime相关的内容结论:DateTime是值类型,因为
- 正常maven依赖jar包的pom.xml写法如下:<!-- https://mvnrepository.com/artifact/o
- 我本地的springboot版本是2.5.1,后面的分析都是基于这个版本 <parent> &nbs
- primary_text_yellow.xml <?xml version="1.0" encoding=&quo
- 目录 任务和线程的区别: 一、认识Task和Task的基本使用1、认识Task2、创建Task 二、Task的
- 你是否遇到过应用程序性能下降的问题?有没有想过提升Spring性能?如果是这样 - 那么这篇文章绝对适合你。在这里,我们将谈论使用超级强大和
- 一、Splash界面的作用用来展现产品的Logo应用程序初始化的操作检查应用程序的版本检查当前应用程序是否合法注册二、界面的xml定义写一个
- 实现原理: 长连接的维持,是要客户端程序,定时向服务端程序,发送一个
- 本文实例讲述了C#线性渐变画刷LinearGradientBrush用法。分享给大家供大家参考。具体如下:using System;usin
- 本文实例为大家分享了Spring boot多线程配置的具体代码,供大家参考,具体内容如下1、配置线程配置类package test;impo
- 介绍最近要使用播放器做一个简单的视频播放功能,开始学习VideoView,在横竖屏切换的时候碰到了点麻烦,不过在查阅资料后总算是解决了。在写
- //直接插入排序void DirectInsertionSort(int* arr, in
- 我就废话不多说了,大家还是直接看代码吧~import java.util.concurrent.ExecutorService; impor
- 1.第一种方式采用System.Net.Dns的GetHostAddress的方式,具体请看代码:/// <summary> &
- 如何实现 WPF 代码查看器控件框架使用.NET40;Visual Studio 2019;代码展示需要使用到AvalonEdit是基于WP
- 这篇文章主要介绍了SpringBoot项目的测试类实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- springboot 异常与重定向在spring中,有两个重定向类型:301,永久性跳转302,暂时性跳转默认调用302。1.下面先通过一个