Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MyBatis Spring动态多数据库数Java配置_Java_Spring_Mybatis_Spring Mybatis - Fatal编程技术网

MyBatis Spring动态多数据库数Java配置

MyBatis Spring动态多数据库数Java配置,java,spring,mybatis,spring-mybatis,Java,Spring,Mybatis,Spring Mybatis,这是一个简单的Spring-DAO方法。然而,使用MyBatis,有没有一种方法可以设置多个潜在的数据源 我能想到的最好的方法是使用一个Bean的数组列表,每个Bean都包含datasource.driverclass、datasource.url、datasource.username、datasource.password等 数据源的值存储在各个属性文件中。这些属性文件中可能有1个或10个(或更多) 例如,一次启动一个应用程序,所有属性文件将一次加载一个ArrayList。然后,根据属性文件

这是一个简单的Spring-DAO方法。然而,使用MyBatis,有没有一种方法可以设置多个潜在的数据源

我能想到的最好的方法是使用一个Bean的数组列表,每个Bean都包含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?

如果您想了解多个DB,这里有一些线索:

无论如何,我会说数据源应该在服务器确认中管理,而不是在应用程序中

然后,Mybatis主配置文件必须放在添加到类路径的位置,但在应用程序包之外,因为每个新数据源都必须在环境元素中引用


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

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

您想提供多租户吗?如果是这样的话,也许有一种方法比试着像那样推出你自己的更好。请编辑你的问题,告诉我们更多关于上下文的信息,你想实现什么?为什么要使用多个数据源?都是同一个方案?相同的数据?@Kayaman-这正是计划,一个多租户解决方案。您觉得在这种情况下,有什么建议更有效吗?@blackwizard-我将在上面添加一些细节。基本上是一个多租户解决方案,不同的数据/数据库和相同的模式。我想象你会通过谷歌搜索“mybatis多租户”找到一些东西。