上次跟大家分享了SpringBoot如何配置多个数据源,配置多个数据源是成功了,但是有个小问题,就是关于驼峰命名的字段并没有查询出来,也就是说,我们的驼峰命名规则是没有生效的。大家可以看下上篇文章的代码结果。SpringBoot如何整合多个数据源,看这篇就够了,可以很清楚的看出我们的时间值是没有查询出来的,那么我今天就跟大家来说一下这个问题的解决办法。
@Bean(name = "test2SqlSessionFactory")
public SqlSessionFactory test2SqlSessionFactory(@Qualifier("test2DataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setTypeAliasesPackage("com.example.mapper.test2");
org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
// 开启驼峰命名规则
configuration.setMapUnderscoreToCamelCase(true);
bean.setConfiguration(configuration);
// 配置xml文件的地址
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/test1/*.xml"));
return bean.getObject();
}
我们只需要在昨天配置的类中加入中间几行代码,开启驼峰命名规则即可。两个配置文件都需要进行配置一下,配置好之后我们再来看一下结果。
这个时候我们整个的驼峰命名就算处理好了。另外不配置这个还有另外一个问题出现,就是如果你的sql是写在xml文件中的,那么你的接口和xml文件是不对应的,就会报错,我们来看一下会报什么错。
我们的sql是写在xml文件中的
我们来看下不配置xml地址错误信息
可以清晰的看出,找不到该方法,这就是我们多个数据源如果不在每个数据源的配置文件中配置xml地址,那么就会出现这个错误。我们配置一下再看下结果。
这个时候就可以拿到正确的结果了,上篇遗留的问题今天给大家补充一下,希望大家看完之后能搞懂一点东西,而不是看个大概,结果自己一写全是各种坑,导致看了没什么效果,我提前把这些坑爬了及时的分享给大家,希望大家一起成长。
ps:上次说本来今天这篇写支付的,结果有点遗留问题就给大家再补一下,下篇再给大家写微信支付遇到的坑,已经要注意的地方。