所在的位置: mysql >> mysql优势 >> mybatis配置多数据源

mybatis配置多数据源

擅长白癜风研究专家 https://disease.39.net/bjzkbdfyy/170611/5448257.html
一简介实际工作中,经常需要同时访问不同的数据库,这数据库类型可能是同类型的,比如都是Mysql数据库,可能都是oracle数据库,也可能是mysql数据和oracle数据库。针对这不同的场景,在mybatis如何配置呢?二不同数据库类型的多数据源配置假设我们现在要同时访问mysql和hive数据库,如何配置环境Configuration呢?我们可以利用DatabaseIdProvider属性来判断。设置sqlSessionFactoryBean时增加设置databaseidprovider属性,我们可以在枚举类里设置各个不同类型的数据库的标志,如图1所示,也就是mysql的databaseid是mysql,oracle的databaseid是oracle,我们解析配置文件如图2里的jdbcurl,识别出数据库类型。图1不同数据库标识图2多数据库配置publicSqlSessionFactoryBeansqlSessionFactoryBean()throwsException{SqlSessionFactoryBeanfactoryBean=newSqlSessionFactoryBean();factoryBean.setDataSource(dataSource());factoryBean.setDatabaseIdProvider(getdatabaseId());factoryBean.setConfiguration(configuration());returnfactoryBean;}publicDatabaseIdProvidergetdatabaseId(){DatabaseIdProviderdatabaseIdProvider=newVendorDatabaseIdProvider();DataSourceEnumdataSourceEnum=DataSourceEnum.findByDatabaseName(databaseId);if(null!=dataSourceEnum){Propertiesproperties=newProperties();properties.setProperty(dataSourceEnum.getVendor(),dataSourceEnum.getName());databaseIdProvider.setProperties(properties);}三mysql数据库类型的多数据源配置相同的数据库类型如Mysql的Configuration如和配置呢?配置两个数据源,代码如图3和图4。另一个数据源采用类似的代码配置,增加

Primary。图3图4本人在测试过程中,出现一个奇葩问题,访问第二个数据库时失败。出错的IP却不是我配置文件里配置的IP,后来发现是因为配置文件里数据库的用户名和密码出错了,导致这个问题,将配置修改正确后,问题解决,可以正常访问两个数据库了。所以数据库的用户名和密码一点错都不能有,哪怕是一个空格。四总结本文介绍了mybatis不同数据源如何配置,两种不同方式:相同数据库类型和mysql数据库类型。他们的多数据源如何配置,可以参考本文的方法。本人也写了jpa的多数据源如何配置,大家也可以参考。


转载请注明:http://www.aierlanlan.com/grrz/9150.html