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

标签 java spring mybatis spring-mybatis

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

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

数据源的值存储在单独的属性文件中。可能有 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 实现的最佳方法是使用 Beans 的 ArrayList 吗?

最佳答案

如果您想跟上多个数据库,这里有一些线索:

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

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

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

关于java - MyBatis Spring DYNAMIC 多个数据库的Java配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41813554/

相关文章:

java - 如何在使用注释的同时使用 mybatis 中的 hashmap 将值插入到行中?

java - 在java中用正则表达式分割产生一个空元素

java - 客户端-服务器应用程序套接字问题

java - 如何在JAVA中向其他类发送状态

java - hibernate : One Entitiy class for multiple purpose?

java - 如何部署 "Building REST Services with Spring"教程?

java - 意外消息 - 没有使用连接拦截器注册端点

java - 与java的Set Collection相关的查询

java - Derby 上的 Oracle 序列 nextval 问题

Mybatis映射对象列表