2014-09-29 71 views
3

我的問題很簡單。我在我的mysql數據庫的產品表中有一個列名product_name,但在我的Product類(java)中,productlc使用camelcase。 MyBatis未將product_name映射到productName。任何解決方案?我在Hibernate之前沒有問題,但現在我需要使用mybatis進行開發MyBatis:下劃線未映射到camelcase

回答

1

您必須在MyBatis中使用<resultMap>標記才能返回結果。例如:

<resultMap id="result" type="userModel"> 
     <result property="id" column="USER_ID"/> 
</resultMap> 

在上面的代碼中,type="userModel"的usermodel是在配置文件中,其中有的usermodel的與模型java類這將對ID相應的setter/getter方法的映射定義。 有關此的詳細信息,請參閱下列文件:

MyBatis Doc

3

我知道這是舊的,但對於那些可能會遇到這樣,MyBatis的supports映射彰顯了駱駝

config.xml中

<configuration> 
    <settings> 
     <setting name="mapUnderscoreToCamelCase" value="true"/> 
    </settings> 
    ... 
</configuration> 

那麼你的SQL可以關注一下:

select product_name, product_description, ... 
from products 

甚至只是

select * 
from products 
3

下劃線駱駝映射可以在基於彈簧的配置通過一個可定製的SqlSessionFactory被啓用,這樣的:

@Bean 
@Primary 
public SqlSessionFactory sqlSessionFactory() throws Exception { 
    SqlSessionFactory factory = sessionFactoryBuilder().build(); 
    factory.getConfiguration().setMapUnderscoreToCamelCase(true); 
    // other configurations 
    return factory; 
}