MyBatis:下划线未映射到驼峰式

rha*_*dom 4 mybatis mybatis-generator

我的问题很简单。我在mysql数据库的产品表中有一个列名product_name,但在我的产品类(java)中,在productName中使用了camelcase。MyBatis没有将product_name映射到productName。有什么解决办法吗?我以前在Hibernate中没问题,但是现在我需要使用mybatis进行开发

rim*_*sky 5

我知道这很旧,但对于可能遇到的问题,MyBatis 支持将下划线映射到驼峰式大小写

config.xml

<configuration>
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    ...
</configuration>
Run Code Online (Sandbox Code Playgroud)

然后您的sql可能看起来像:

select product_name, product_description, ...
from products
Run Code Online (Sandbox Code Playgroud)

甚至只是

select *
from products
Run Code Online (Sandbox Code Playgroud)


Dar*_*usz 5

可以通过可自定义的SqlSessionFactory在基于Spring的配置中启用下划线到驼峰大小写的映射,如下所示:

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


Akh*_*hil 1

您必须<resultMap>在 MyBatis 中使用标签来返回结果。例如:

<resultMap id="result" type="userModel">
        <result property="id" column="USER_ID"/>
</resultMap>
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,type="userModel"userModel 是在配置文件中定义的,其中存在 userModel 与模型 java 类的映射,该类将具有相应的 id setter/getter 方法。有关这方面的更多信息,请参阅以下文档:

MyBatis 文档