最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis?傳入null值的解決方案

 更新時(shí)間:2022年03月10日 10:36:04   作者:A雄  
這篇文章主要介紹了mybatis?傳入null值的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mybatis 傳入null值解決

前端傳入兩個(gè)值,如果其中一個(gè)為null時(shí),很多時(shí)候我們都很困惑,明明傳入的是null,為啥mybatis 的xml文件中的if條件判斷無效?

public String getPersonInfo(@PathParam("Name") String Name, @PathParam("IDCard") String IDCard)

dao層

public List<Map> getPersonInfo(@Param("name") String name, @Param("idcard") String idcard);

xml文件內(nèi)容

<if test="name == null or name == '0'.toString()">?
? ? <![CDATA[ and (b.identity_id = #{idcard,javaType=String,jdbcType=VARCHAR})
? ? group by name,id_card,birthTime,sex ?]]>?
</if>

每次執(zhí)行都是失敗的,網(wǎng)上很多都說要在dao層添加@param注解和xml文件內(nèi)容中要加入jdbcType類型就能解決,最后還是沒解決

其實(shí)還有一個(gè)點(diǎn)忽略了,就是傳入時(shí)的null值其實(shí)是個(gè)字符串null,根本就不是null,它是個(gè)字符串null

? ? ? ? if (Name == null || "null".equalsIgnoreCase(Name)) {
? ? ? ? ? ? Name = null;
? ? ? ? }
? ? ? ? if (IDCard == null || "null".equalsIgnoreCase(IDCard)) {
? ? ? ? ? ? IDCard = null;
? ? ? ? }

問題解決!

mybatis 注入老是為null

今天遇到個(gè)很弱智的問題,以此記錄!時(shí)刻提醒自己

    public int delExhibion(List<String> ids){
        Integer result = null;
        ExhibitionManager exhibitionManager = new ExhibitionManager();
        for (String id : ids){
            exhibitionManager.setId(id);
            exhibitionManager.setDelFlag("1");
             result += exhibitionManagerMapper.delete(id);
        }
        return result;
    }

發(fā)現(xiàn)老是執(zhí)行 delete 的時(shí)候 ,老是報(bào) 空指針異常

然后嘗試使用:  @Param  給參數(shù)加上命令     

int delete(@Param("id") String id); ?

結(jié)果還是不行,

然后在嘗試使用:對(duì)象傳參,這樣總該注入進(jìn)去了吧 

int delete(Object dx);

結(jié)果還是不行,

然后在嘗試使用:Mybatis 單個(gè)參數(shù)動(dòng)態(tài)語句引用:

是當(dāng)我們的參數(shù)為String時(shí),在sql語句中#{id} 會(huì)去我們傳進(jìn)來的參數(shù)調(diào)getId()方法獲取參數(shù),很明顯,String沒有對(duì)應(yīng)的方法,所以報(bào)錯(cuò)了,那我們這里要如何引用id呢,需要采用下面的寫法:

<delete id="delete" parameterType="java.lang.String" > ?
? ? ? ? ?SELECT * FROM table
? ? ? ? ?<where> ?
? ? ? ? ? ? ? ? ? ?<if test="_parameter != null"> ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? AND id= #{id} ?
? ? ? ? ? ? ? ? ? ?</if> ?
? ? ? ? ?</where> ?
</select>

單Mybatis傳參為單個(gè)參數(shù)時(shí),在sql語句中需要使用  _parameter 來引用這個(gè)參數(shù)

結(jié)果還是不行。  

終于過了一會(huì)兒,看代碼時(shí)突然頓悟

? ? public int delExhibion(List<String> ids){
? ? ? ? Integer result = null;
? ? ? ? for (String id : ids){
? ? ? ? ? ? ?result += exhibitionManagerMapper.delete(id);
? ? ? ? }
? ? ? ? return result;
? ? }

Integer  result  我給他設(shè)置默認(rèn)值  為null,   并且還讓  reuslt  這個(gè)對(duì)象   result +=   

加等于在執(zhí)行數(shù)據(jù)庫操作返回結(jié)果時(shí) 用 result 去接收。 這不就一定是空指針了嗎。

我給 Integer result = 0;  設(shè)置個(gè)默認(rèn)值為0   那也不會(huì)出現(xiàn)這種情況!

或者 result =   給result  初始化賦值     也不會(huì)報(bào)  空指針異常!  不過這樣做在我的業(yè)務(wù)中是不對(duì)的哦。  只是不會(huì)報(bào)錯(cuò). 但是獲取不到我想要的執(zhí)行成功條數(shù)

Integer result = null;
result = ?exhibitionManagerMapper.delete(id);

真的是被自己氣到了。以此記錄!時(shí)刻提醒自己   

?public int delExhibion(List<String> ids){
? ? ? ? Integer result = 0;
? ? ? ? for (String id : ids){
? ? ? ? ? ? ?result += exhibitionManagerMapper.delete(id);
? ? ? ? }
? ? ? ? return result;
? ? }

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 簡介Java編程中的Object類

    簡介Java編程中的Object類

    這篇文章主要介紹了簡介Java編程中的Object類,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • 如何使用GSON解析JSON數(shù)據(jù)

    如何使用GSON解析JSON數(shù)據(jù)

    這篇文章主要介紹了如何使用GSON解析JSON數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Java 讀取PDF中的文本和圖片的方法

    Java 讀取PDF中的文本和圖片的方法

    本文將介紹通過Java程序來讀取PDF文檔中的文本和圖片的方法。分別調(diào)用方法extractText()和extractImages()來讀取,需要的朋友可以參考下
    2019-07-07
  • java中如何使用BufferedImage判斷圖像通道順序并轉(zhuǎn)RGB/BGR

    java中如何使用BufferedImage判斷圖像通道順序并轉(zhuǎn)RGB/BGR

    這篇文章主要介紹了java中如何BufferedImage判斷圖像通道順序并轉(zhuǎn)RGB/BGR的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • java解決雪花ID在前端精度丟失問題

    java解決雪花ID在前端精度丟失問題

    雪花算法生成的64位Long類型ID在傳遞到前端時(shí)可能會(huì)因JavaScript的精度限制導(dǎo)致精度丟失,這篇文章主要介紹了java解決雪花ID在前端精度丟失問題的相關(guān)資料,需要的朋友可以參考下
    2024-11-11
  • 從Mybatis-Plus開始認(rèn)識(shí)SerializedLambda的詳細(xì)過程

    從Mybatis-Plus開始認(rèn)識(shí)SerializedLambda的詳細(xì)過程

    這篇文章主要介紹了從Mybatis-Plus開始認(rèn)識(shí)SerializedLambda,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • SpringCloud Feign高級(jí)配置詳解

    SpringCloud Feign高級(jí)配置詳解

    這篇文章主要介紹了SpringCloud Feign高級(jí)配置,feign是netflix提供的服務(wù)間基于http的rpc調(diào)用框架,在spring cloud得到廣泛應(yīng)用
    2022-09-09
  • Java方法能定義多少個(gè)參數(shù)你知道嗎

    Java方法能定義多少個(gè)參數(shù)你知道嗎

    這篇文章主要給大家介紹了關(guān)于Java方法能定義多少個(gè)參數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • Mybatis 中如何判斷集合的size

    Mybatis 中如何判斷集合的size

    這篇文章主要介紹了在Mybatis中判斷集合的size操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • skywalking源碼解析javaAgent工具ByteBuddy應(yīng)用

    skywalking源碼解析javaAgent工具ByteBuddy應(yīng)用

    這篇文章主要為大家介紹了skywalking源碼解析javaAgent工具ByteBuddy應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-03-03

最新評(píng)論

昌黎县| 本溪| 枣强县| 平泉县| 泗水县| 太谷县| 孟州市| 黔西县| 察哈| 新巴尔虎右旗| 章丘市| 西青区| 锦州市| 东城区| 银川市| 聂荣县| 离岛区| 丰原市| 北碚区| 钦州市| 梧州市| 天峨县| 靖西县| 桃源县| 莒南县| 遵义市| 临朐县| 育儿| 安宁市| 梧州市| 尚义县| 象州县| 新民市| 宁津县| 同仁县| 龙泉市| 紫金县| 逊克县| 吉安县| 天全县| 彰化县|