Mybatis混合配置系统

时间:2014-04-07 21:13:57

标签: mybatis

我正在使用Mybatis编写CLI应用程序。在我的应用程序中,当我转到不同的菜单时,它会提示菜单所针对的特定数据库的用户和密码。

我想用Guice和Mybatis来处理所有这些,但我有一个小问题。我想使用XML配置文件来处理每个数据库的mybatis配置,但每个连接的用户和传递必须来自UI。所以基本上,我想为特定连接加载mybatis xml文件,然后插入用户输入的特定连接的凭据,然后将它们绑定到该组菜单的guice注入器。

我可以在java中使用属性对象非常简单,但我无法弄清楚如何首先加载XML,然后在加载之前使用某些设置对其进行扩充。

有没有人试过这个?

1 个答案:

答案 0 :(得分:0)

如果您使用mybatis guice,可以通过为MyBatisModule提供dataSourceProvider来完成此操作:

Class<? extends Provider<DataSource>> dataSourceProviderType = YourDataSourceProvider.class;

Injector injector = Guice.createInjector(
    new MyBatisModule() {

        @Override
        protected void initialize() {
            bindDataSourceProviderType(dataSourceProviderType);
            // other initialization ...
        }

    },
    // other modules
);

YourDataSourceProvider应该能够使用从UI获取的凭据创建DataSource

在这种情况下,你仍然可以使用xml mappers for mybatis。