我正在使用Mybatis编写CLI应用程序。在我的应用程序中,当我转到不同的菜单时,它会提示菜单所针对的特定数据库的用户和密码。
我想用Guice和Mybatis来处理所有这些,但我有一个小问题。我想使用XML配置文件来处理每个数据库的mybatis配置,但每个连接的用户和传递必须来自UI。所以基本上,我想为特定连接加载mybatis xml文件,然后插入用户输入的特定连接的凭据,然后将它们绑定到该组菜单的guice注入器。
我可以在java中使用属性对象非常简单,但我无法弄清楚如何首先加载XML,然后在加载之前使用某些设置对其进行扩充。
有没有人试过这个?
答案 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。