ssm+mybatis無法給帶有下划線屬性賦值問題,無法獲取數據庫帶下划線的字段值


1、配置問題

<!-- 是否開啟自動駝峰命名規則(camel case)映射, -->

<setting name="mapUnderscoreToCamelCase" value="true"/>

 

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

 

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

2、增加set方法轉換值的方式

原實體類
    public class user {  
      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 user;

 

這句sql在數據庫可以查到數據,但是使用mybatis的實體類查詢就查不到了。

解決方法

在實體類中增加以下兩個set方法並把sql改為
select user_name as username,pass_word as password from user;

 

使用實體類查詢數據庫實際上就是一個set的過程只需要把每個屬性增加一個set方法就好了(這個還行吧)
    public void setUsernaem(String user_name){  
          this.user_name=user_name;  
     }  
     public void setPassword(String pass_word){  
          this.pass_word=pass_word;  
     }  
 
 然后查詢:
//還是可以查詢全部數據的

select
* from user order by id asc;

 

 
 
        

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM