MyBatis Spring DYNAMIC多个数据库Java配置的数量

时间:2017-01-23 18:51:59

标签: java spring mybatis spring-mybatis

使用简单的Spring DAO方法,这是非常简单的。但是,使用MyBatis,有没有办法设置多个潜在的数据源?

我能想到的最好的方法是使用Bean的ArraList,每个包含datasource.driverclass,datasource.url,datasource.username,datasource.password等。

数据源的值存储在各个属性文件中。可能有1或10个属性文件(或更多)。

因此,例如,一个应用程序启动所有属性文件将一次一个地加载到ArrayList中。然后,根据属性文件中的NAME = value行,我们将知道要命中哪个数据源。

所以http:localhost:8080 / name = db1

...将访问使用名称" 09"配置的数据源中的所有数据。每个属性文件都包含:

name=db1
datasource.driverclass=jdbc:sqlserver
datasource.url=jdbc:sqlserver://localhost:1433;databaseName=someDBname
datasource.username=user1
datasource.password=pass1

所以这里的标识符是" name = db1"。

MyBatis实现的最佳方法是使用Bean的ArrayList吗?

2 个答案:

答案 0 :(得分:1)

如果您想了解多个数据库,可以使用以下链接:

无论如何,我想说数据源应该在服务器配置中而不是在应用程序中进行管理。

然后Mybatis主配置文件必须放在添加到类路径的位置,但在app包之外,因为必须在 environment 元素内引用每个新数据源。

对于每个用户请求或会话(如果是Web应用程序),将解析配置,因为必须调用SqlSessionFactoryBuilder.build(reader, environment=NAME);来选择环境(=>数据库)。

答案 1 :(得分:0)

我最终使用了一个分层的application.yml文件,详细说明了基于所选租户代码的多租户连接值。