MyBatis使用動(dòng)態(tài)表或列代碼解析
有時(shí)候會(huì)不可避免使用動(dòng)態(tài)表或者列進(jìn)行業(yè)務(wù)處理。下面學(xué)習(xí)幾種動(dòng)態(tài)表/列的使用方式:
【1】使用預(yù)編譯
即,默認(rèn)值。
<select id="hisNumber" parameterType="hashmap" resultType="hashmap" > select number from ${oldTableName} <!--這里使用"$"!!!--> where name=#{name} and date = #{date} <!--這里使用"#"--> <select>
預(yù)編譯,即首先會(huì)生成select number from ? where name=? and date=? 這樣使用”?”作為占位符的語(yǔ)句,然后進(jìn)行參數(shù)解析。
【2】使用非預(yù)編譯
<select id="hisNumber" parameterType="hashmap" resultType="hashmap" statementType="STATEMENT" > select number from ${oldTableName} <!--這里使用"$"!!!--> where name='${name,jdbcType=VARCHAR}' and date = '${date,jdbcType=TIMESTAMP}' <select>
注意后面name和date的取值,使用了'${name}' 格式,這樣會(huì)對(duì)參數(shù)進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,有助于mysql查詢時(shí)提升性能。
【3】仍舊使用非預(yù)編譯
<select id="hisNumber" parameterType="hashmap" resultType="hashmap" statementType="STATEMENT" > select number from ${oldTableName} <!--這里使用"$"!!!--> where name=${name} and date = ${date} <select>
注意后面name和date的取值,使用了${name} 格式,將會(huì)直接取參數(shù)值,不進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。當(dāng)參數(shù)為數(shù)值類型且格式如“00124”時(shí),將會(huì)出現(xiàn)數(shù)據(jù)錯(cuò)讀(會(huì)將0124、124等都讀出來(lái))。
故建議使用第一種方式??!
總結(jié)
以上就是本文關(guān)于MyBatis使用動(dòng)態(tài)表或列代碼解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
- Mybatis中動(dòng)態(tài)SQL,if,where,foreach的使用教程詳解
- MyBatis 動(dòng)態(tài)SQL和緩存機(jī)制實(shí)例詳解
- mybatis教程之動(dòng)態(tài)sql語(yǔ)句_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- Mybatis實(shí)現(xiàn)Mapper動(dòng)態(tài)代理方式詳解
- MyBatis動(dòng)態(tài)SQL標(biāo)簽用法實(shí)例詳解
- Mybatis利用OGNL表達(dá)式處理動(dòng)態(tài)sql的方法教程
- MyBatis動(dòng)態(tài)SQL中的trim標(biāo)簽的使用方法
- Spring3 整合MyBatis3 配置多數(shù)據(jù)源動(dòng)態(tài)選擇SqlSessionFactory詳細(xì)教程
相關(guān)文章
Java8如何構(gòu)建一個(gè)Stream示例詳解
Java 8 是迄今為止在語(yǔ)義上改動(dòng)上最大的一個(gè)平臺(tái)。下面這篇文章主要給大家介紹了關(guān)于Java8如何構(gòu)建一個(gè)Stream的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04SpringBoot整合MyBatisPlus配置動(dòng)態(tài)數(shù)據(jù)源的方法
這篇文章主要介紹了SpringBoot整合MyBatisPlus配置動(dòng)態(tài)數(shù)據(jù)源的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-05-05mybatis中 if-test 數(shù)字判斷的坑及解決
這篇文章主要介紹了mybatis中 if-test 數(shù)字判斷的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06解決springboot自定義配置Boolean屬性不能生效的問(wèn)題
這篇文章主要介紹了解決springboot自定義配置Boolean屬性不能生效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05Netty啟動(dòng)流程注冊(cè)多路復(fù)用源碼解析
這篇文章主要介紹了Netty啟動(dòng)流程注冊(cè)多路復(fù)用源碼分析,繼續(xù)分析channel是如何注冊(cè)到selector中的,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03java防盜鏈在報(bào)表中的應(yīng)用實(shí)例(推薦)
下面小編就為大家?guī)?lái)一篇java防盜鏈在報(bào)表中的應(yīng)用實(shí)例(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09