数据库里经常用 _ 命名变量,例如:user_name。
而Java实体类经常用驼峰命名,例如userName。
如果想要让mybatis自动开启下划线到驼峰命名映射,需要在application配置文件来配置:
mybatis.configuration.map-underscore-to-camel-case=true
发现没有生效,没有成功映射到数据对象中,都是null
原因:手动配置了数据库连接
解决办法:
在数据库配置类中配置:
@Bean
@ConfigurationProperties(prefix = "mybatis.configuration")
public org.apache.ibatis.session.Configuration globalConfiguration() {
return new org.apache.ibatis.session.Configuration();
}
把配置添加到sessionFactory
sessionFactory.setConfiguration(globalConfiguration());
@Bean(name = "sqlSessionFactory")
@Primary
public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource") DataSource dataSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setConfiguration(globalConfiguration());
return sessionFactory.getObject();
}
当在数据库中使用下划线命名变量如user_name,而在Java实体类中使用驼峰命名如userName时,为使MyBatis自动映射,需在application配置文件中设置mybatis.configuration.map-underscore-to-camel-case为true。但若配置未生效,可能是由于手动配置了数据库连接。解决方法是在数据库配置类中创建全局Configuration Bean,并在SessionFactory中设置该配置,确保sessionFactory正确应用了映射规则。
2105

被折叠的 条评论
为什么被折叠?



