亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Mybatis無(wú)法獲取帶有下劃線前綴的字段的值問(wèn)題

 更新時(shí)間:2021年12月01日 15:54:42   作者:言曌博客  
這篇文章主要介紹了Mybatis無(wú)法獲取帶有下劃線前綴的字段的值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Mybatis無(wú)法獲取帶有下劃線前綴的字段的值

今天下面,把幾張表里的字段都加了前綴,如 article_id,article_title,acticle_content,article_status。

然后通過(guò)Mybatis-generator 生成了 po和mapper,替換后。

原本正常的網(wǎng)頁(yè),這下數(shù)據(jù)全沒(méi)了。當(dāng)時(shí),很淡定,推測(cè)可能是哪里寫(xiě)錯(cuò)了,改改就好。但是就是這改改,改了幾個(gè)小時(shí)都沒(méi)成功,調(diào)試了很久。打斷點(diǎn)一直是顯示:All Element are null

后來(lái),Ctrl+Z 撤銷所有修改,并把字段的前綴全部去掉。這時(shí)候,突然想到,之前有一次就是因?yàn)樽侄渭恿讼聞澗€導(dǎo)致什么報(bào)錯(cuò),當(dāng)時(shí)為了省事,就全改為沒(méi)有下劃線的。同時(shí)也關(guān)注到 Mybatis-generator 會(huì)把帶有下劃線的字段按照駝峰法命名,會(huì)不會(huì)是這里呢?

這時(shí)候,試了一下不帶下劃線和帶下劃線字段混合的表。

打了斷點(diǎn),發(fā)現(xiàn)真相在這里

帶有下劃線的字段,都無(wú)法獲取值,不帶的則可以。

最終百度找到了解決方案。

這里感謝一下 valder fields

解決辦法

在mybatis-config.xml文件里配置

<configuration>
    <!-- 全局配置 -->
    <settings>
        <!--允許 JDBC 支持自動(dòng)生成主鍵-->
        <setting name="useGeneratedKeys" value="false"/>
       <!--是否開(kāi)啟自動(dòng)駝峰命名規(guī)則(camel case)映射,即從經(jīng)典數(shù)據(jù)庫(kù)列名 A_COLUMN 到經(jīng)典
Java 屬性名 aColumn 的類似映射。 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>

Mybatis無(wú)法給帶有下劃線屬性賦值

1、配置問(wèn)題

<!-- 是否開(kāi)啟自動(dòng)駝峰命名規(guī)則(camel case)映射, -->
<setting name="mapUnderscoreToCamelCase" value="true"/>

或者

//開(kāi)啟駝峰映射
        bean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);

mybatis配置文件設(shè)置了這項(xiàng)后,查詢出來(lái)的字段如果帶下劃線,那么就會(huì)去掉下劃線,然后采用java駝峰規(guī)則。比如數(shù)據(jù)庫(kù)字段Parent_id,那么查詢出來(lái)后,會(huì)轉(zhuǎn)為parentid,然后去實(shí)體類匹配對(duì)應(yīng)的字段。 因?yàn)槟銓?shí)體類里有下劃線,所以匹配不上。要么采用resultMap 要么禁用掉駝峰規(guī)則(不建議禁用)。如果不想改實(shí)體類的話,建議采用resultMap。

2、增加set方法轉(zhuǎn)換值的方式

原實(shí)體類

    public class demo {  
      private String user_name;  
      private Striing pass_word;             
      public String getPass_word(){  
           return pass_word;  
      }  
      public void setPass_word(String pass_word){  
           this.pass_word=pass_word;  
      }       
    } 

原sql

select user_name,pass_word from demo;

這句sql在數(shù)據(jù)庫(kù)可以查到數(shù)據(jù),但是使用mybatis的實(shí)體類查詢就查不到了。

解決方法

在實(shí)體類中增加以下兩個(gè)set方法并把sql改為

select user_name as username,pass_word as password from demo;

使用實(shí)體類查詢數(shù)據(jù)庫(kù)實(shí)際上就是一個(gè)set的過(guò)程只需要把每個(gè)屬性增加一個(gè)set方法就好了

    public void setUsernaem(String user_name){  
          this.user_name=user_name;  
     }  
     public void setPassword(String pass_word){  
          this.pass_word=pass_word;  
     }  

僅適用于不方便改實(shí)體類的情況

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

相關(guān)文章

  • Java中ArrayList類用法詳解

    Java中ArrayList類用法詳解

    這篇文章主要給大家介紹了關(guān)于Java中ArrayList類用法的相關(guān)資料,ArrayList是Java中的一種常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),它實(shí)現(xiàn)了List接口,是線程不安全的動(dòng)態(tài)數(shù)組,需要的朋友可以參考下
    2023-09-09
  • Spring中Eureka的服務(wù)下線詳解

    Spring中Eureka的服務(wù)下線詳解

    這篇文章主要介紹了Spring中Eureka的服務(wù)下線詳解,根據(jù)默認(rèn)的策略,如果在一定的時(shí)間內(nèi),客戶端沒(méi)有向注冊(cè)中心發(fā)送續(xù)約請(qǐng)求,那么注冊(cè)中心就會(huì)將該實(shí)例從注冊(cè)中心移除,需要的朋友可以參考下
    2023-11-11
  • java實(shí)現(xiàn)ArrayList根據(jù)存儲(chǔ)對(duì)象排序功能示例

    java實(shí)現(xiàn)ArrayList根據(jù)存儲(chǔ)對(duì)象排序功能示例

    這篇文章主要介紹了java實(shí)現(xiàn)ArrayList根據(jù)存儲(chǔ)對(duì)象排序功能,結(jié)合實(shí)例形式分析了java針對(duì)ArrayList的相關(guān)運(yùn)算、排序操作技巧,需要的朋友可以參考下
    2018-01-01
  • Spring實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫(xiě)分離詳解

    Spring實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫(xiě)分離詳解

    這篇文章主要介紹了Spring?實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫(xiě)分離,大多數(shù)系統(tǒng)都是讀多寫(xiě)少,為了降低數(shù)據(jù)庫(kù)的壓力,可以對(duì)主庫(kù)創(chuàng)建多個(gè)從庫(kù),從庫(kù)自動(dòng)從主庫(kù)同步數(shù)據(jù),程序中將寫(xiě)的操作發(fā)送到主庫(kù),將讀的操作發(fā)送到從庫(kù)去執(zhí)行,需要的朋友可以參考下
    2024-01-01
  • java雙端隊(duì)列之ArrayDequeue原理講解

    java雙端隊(duì)列之ArrayDequeue原理講解

    這篇文章主要為大家介紹了java雙端隊(duì)列之ArrayDequeue原理講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • SpringCloud Feign參數(shù)問(wèn)題及解決方法

    SpringCloud Feign參數(shù)問(wèn)題及解決方法

    這篇文章主要介紹了SpringCloud Feign參數(shù)問(wèn)題及解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • springboot實(shí)現(xiàn)添加郵件發(fā)送及壓縮功能

    springboot實(shí)現(xiàn)添加郵件發(fā)送及壓縮功能

    這篇文章主要介紹了springboot實(shí)現(xiàn)添加郵件發(fā)送及壓縮功能 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • idea如何將指定目錄打成jar包

    idea如何將指定目錄打成jar包

    這篇文章主要介紹了idea如何將指定目錄打成jar包問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • java 過(guò)濾器filter防sql注入的實(shí)現(xiàn)代碼

    java 過(guò)濾器filter防sql注入的實(shí)現(xiàn)代碼

    下面小編就為大家?guī)?lái)一篇java 過(guò)濾器filter防sql注入的實(shí)現(xiàn)代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08
  • SpringBoot實(shí)現(xiàn)自定義Starter的步驟詳解

    SpringBoot實(shí)現(xiàn)自定義Starter的步驟詳解

    在SpringBoot中,Starter是一種特殊的依賴,它可以幫助我們快速地集成一些常用的功能,例如數(shù)據(jù)庫(kù)連接、消息隊(duì)列、Web框架等。在本文中,我們將介紹如何使用Spring Boot實(shí)現(xiàn)自定義Starter,需要的朋友可以參考下
    2023-06-06

最新評(píng)論