MyBatis:下划线未映射到camelcase

时间:2014-09-29 07:56:51

标签: mybatis mybatis-generator

我的问题很简单。我的mysql数据库的产品表中有一个列名product_name,但在我的Product类(java)中,camelcase用于productName。 MyBatis未将product_name映射到productName。对此有何解决方案?我之前在Hibernate中没有问题,但现在我需要使用mybatis进行开发

4 个答案:

答案 0 :(得分:4)

我知道这已经过时了,但对于那些可能会遇到这种情况的人来说,MyBatis supports映射强调了骆驼案例

config.xml中

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

然后你的sql看起来像:

select product_name, product_description, ...
from products

甚至只是

select *
from products

答案 1 :(得分:4)

可以通过可自定义的SqlSessionFactory在基于spring的配置中启用对驼峰案例映射的下划线映射,如下所示:

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

答案 2 :(得分: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 :(得分:0)

对此我有一个非常简单的解决方案,但我认为这不是正确的解决方案。 我添加了 as 以匹配我班级的属性。

select product_name as productName from products;