欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis無法獲取帶有下劃線前綴的字段的值問題

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

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

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

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

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

后來,Ctrl+Z 撤銷所有修改,并把字段的前綴全部去掉。這時候,突然想到,之前有一次就是因為字段加了下劃線導(dǎo)致什么報錯,當(dāng)時為了省事,就全改為沒有下劃線的。同時也關(guān)注到 Mybatis-generator 會把帶有下劃線的字段按照駝峰法命名,會不會是這里呢?

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

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

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

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

這里感謝一下 valder fields

解決辦法

在mybatis-config.xml文件里配置

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

Mybatis無法給帶有下劃線屬性賦值

1、配置問題

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

或者

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

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

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

原實體類

    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ù)庫可以查到數(shù)據(jù),但是使用mybatis的實體類查詢就查不到了。

解決方法

在實體類中增加以下兩個set方法并把sql改為

select user_name as username,pass_word as password from demo;

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

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

僅適用于不方便改實體類的情況

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

相關(guān)文章

  • Java中ArrayList類用法詳解

    Java中ArrayList類用法詳解

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

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

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

    java實現(xiàn)ArrayList根據(jù)存儲對象排序功能示例

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

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

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

    java雙端隊列之ArrayDequeue原理講解

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

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

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

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

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

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

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

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

    下面小編就為大家?guī)硪黄猨ava 過濾器filter防sql注入的實現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • SpringBoot實現(xiàn)自定義Starter的步驟詳解

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

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

最新評論