mybatis?對于生成的sql語句?自動加上單引號的情況詳解
對于生成的sql語句 自動加上單引號的情況
mybatis是這樣的,如果表的字段跟系統(tǒng)字段沖突,寫sql語句的時候必須得加上單引號,這樣才會區(qū)分
mySQL中replace的用法
1.replace into
replace into table (id,name) values(‘1',‘a(chǎn)a'),(‘2',‘bb')
此語句的作用是向表table中插入兩條記錄。如果主鍵id為1或2不存在
就相當(dāng)于
insert into table (id,name) values(‘1',‘a(chǎn)a'),(‘2',‘bb')
如果存在相同的值則不會插入數(shù)據(jù)
2.replace(object,search,replace)
把object中出現(xiàn)search的全部替換為replace
select replace(‘www.baicai.net',‘w',‘Ww')—>WwWwWw.baicai.net
例:把表table中的name字段中的aa替換為bb
update table set name=replace(name,‘a(chǎn)a',‘bb')
mybatis中IFNULL(P1,P2)函數(shù)的用法
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"

總結(jié):
1、IFNULL(P1,P2)如果P1不為空,則返回值為P1;P1為NULL,則返回為P2;P2有點類似替補球員;
2、注意,IFNULL只是針對局部字段的替換;如果整個結(jié)果查出來都是空,則不能使用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,默認(rèn)為數(shù)值,在與字符串雙等時或者調(diào)用equals時會過不去,需要加上toString()先進(jìn)行轉(zhuǎn)換
原因分析
因為mybatis是用OGNL表達(dá)式來解析的,所以在OGNL的表達(dá)式中,'A’會被解析成字符,同時java又是強類型的,char 和 一個string 是不等的,所以if標(biāo)簽中的sql不會被解析。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java實現(xiàn)動態(tài)數(shù)據(jù)源切換的實踐指南
在 Java 開發(fā)中,許多場景需要訪問多個數(shù)據(jù)庫,例如多租戶系統(tǒng)或讀寫分離架構(gòu),為了靈活高效地管理這些場景,動態(tài)數(shù)據(jù)源切換技術(shù)應(yīng)運而生,所以本文給大家介紹了Java實現(xiàn)動態(tài)數(shù)據(jù)源切換的實踐指南,需要的朋友可以參考下2025-03-03
Java Web檢查用戶登錄狀態(tài)(防止用戶訪問到非法頁面)
一般javaweb網(wǎng)站都有用戶登錄,而有一些操作必須用戶登錄才能進(jìn)行,本文主要介紹了Java Web檢查用戶登錄狀態(tài),具有一定的參考價值,感興趣的可以了解一下2023-09-09
SpringBoot整合MOTT動態(tài)讀取數(shù)據(jù)庫連接信息并連接MQTT服務(wù)端
MQTT是一種輕量級的消息傳輸協(xié)議(Message Queuing Telemetry Transport),旨在實現(xiàn)設(shè)備之間的低帶寬和高延遲的通信,本文給大家介紹了SpringBoot整合MOTT動態(tài)讀取數(shù)據(jù)庫連接信息并連接MQTT服務(wù)端,需要的朋友可以參考下2024-04-04
Mybatis動態(tài)SQL之where標(biāo)簽用法說明
這篇文章主要介紹了Mybatis動態(tài)SQL之where標(biāo)簽用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
詳解Spring MVC的異步模式(高性能的關(guān)鍵)
本篇文章主要介紹了詳解Spring MVC的異步模式(高性能的關(guān)鍵),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
java調(diào)用百度定位api服務(wù)獲取地理位置示例
java調(diào)用百度定位api服務(wù)獲取地理位置示例,大家參考使用吧2013-12-12
springboot集成springsession如何實現(xiàn)分布式session共享
這篇文章主要介紹了springboot集成springsession如何實現(xiàn)分布式session共享問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09

