mybatis xml注釋sql的注意事項(xiàng)及說(shuō)明
mybatis xml注釋sql的注意事項(xiàng)
說(shuō)明:在mybatis 的sql里不是不能寫注釋,而是注釋不能有#{},mybatis仍舊會(huì)把#{}算成一個(gè)帶注入的參數(shù)
如代碼段2所示,mysql數(shù)據(jù)庫(kù)更換為oracle數(shù)據(jù)庫(kù)時(shí),#{date}需要明確jdbcType,而該代碼段中僅將適用于mysql的sql注釋,依舊會(huì)報(bào)同樣的錯(cuò),最好是將注釋的sql刪除。
<select id="slectSlagsteelRatioByDate" resultType="java.lang.Double">
-- select slagsteel_ratio FROM process_history WHERE r furnace_num = #{furnaceNum}
-- ORDER BY real_time DESC limit 0,1
select slagsteel_ratio FROM(
select slagsteel_ratio FROM process_history WHERE real_time <= #{date,jdbcType=TIMESTAMP}
ORDER BY real_time DESC ) WHERE ROWNUM = 1
</select>注意事項(xiàng)
1、where語(yǔ)句等用到大于小于等符號(hào)時(shí)候,需要使用 <![CDATA[ > ]]>或者 <![CDATA[ < ]]>進(jìn)行識(shí)別。
2、如果sql文中有動(dòng)態(tài)sql文標(biāo)簽,比如sql文,此時(shí)wwww為傳遞的參數(shù),不需用#{wwww }取值,直接使用即可。
3、如果超過(guò)一個(gè)參數(shù),需要在接口方法的每個(gè)參數(shù)定義時(shí)候使用@Param注解。
4、order by語(yǔ)句可以使用動(dòng)態(tài)sql
ORDER BY eeee ORDER BY rrrrrr
5、SELECT
CASE
WHEN 條件1 THEN 字段1WHEN 條件2 THEN 字段2
ELSE 字段3
END
FROM.....只要滿足一個(gè)WHEN,后面的WHEN就不會(huì)執(zhí)行了,跳出CASE WHEN 語(yǔ)句
mybatis xml 注釋問(wèn)題
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property=‘mybatis_plus_first’, mode=IN, javaType=long, jdbcType=null, numericScale=null, resultMapId=‘null’, jdbcTypeName=‘null’, expression=‘null’}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType null . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).] with root cause
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
解決辦法
在mybatis里面注釋語(yǔ)句的時(shí)候,不要用–,用 <!- -需要注釋的內(nèi)容–>。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot集成WebSocket的兩種方式(JDK內(nèi)置版和Spring封裝版)
這篇文章主要介紹了SpringBoot集成WebSocket的兩種方式,這兩種方式為JDK內(nèi)置版和Spring封裝版,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
SpringBoot實(shí)現(xiàn)微服務(wù)通信的多種方式
微服務(wù)通信是指在分布式系統(tǒng)中,各個(gè)微服務(wù)之間進(jìn)行數(shù)據(jù)交互和通信的過(guò)程,今天我們將探討在Spring Boot中實(shí)現(xiàn)微服務(wù)通信的多種方式,文章通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07
JAVA中的Token 基于Token的身份驗(yàn)證實(shí)例
這篇文章主要介紹了JAVA中的Token 基于Token的身份驗(yàn)證實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08
一文帶你掌握J(rèn)ava8中Lambda表達(dá)式 函數(shù)式接口及方法構(gòu)造器數(shù)組的引用
Java 8 (又稱為 jdk 1.8) 是 Java 語(yǔ)言開發(fā)的一個(gè)主要版本。 Oracle 公司于 2014 年 3 月 18 日發(fā)布 Java 8 ,它支持函數(shù)式編程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等2021-10-10
JAVA中StringBuffer與String的區(qū)別解析
這篇文章主要介紹了JAVA中StringBuffer與String的區(qū)別解析,需要的朋友可以參考下2014-02-02
詳解Mybatis-plus中更新date類型數(shù)據(jù)遇到的坑
這篇文章主要介紹了詳解Mybatis-plus中更新date類型數(shù)據(jù)遇到的坑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10

