2014-04-07 104 views
0

我正在用Mybatis編寫一個CLI應用程序。在我的應用程序中,當我進入不同的菜單時,它會提示輸入菜單違規的特定數據庫的用戶和密碼。Mybatis混合配置系統

我想使用Guice和Mybatis來處理所有這些,但我有一個小問題。我想使用XML配置文件來處理每個數據庫的mybatis配置,但用戶和來自每個連接的傳遞必須來自UI。所以基本上,我想爲特定連接加載mybatis xml文件,然後插入用戶輸入的特定連接的憑據,然後將這些連接綁定到該菜單的guice注入器。

我可以在java中使用屬性對象很容易,但我無法弄清楚如何在加載XML之前先加載XML,然後在加載之前使用某些設置來擴充它。

有沒有人試過嗎?

回答

0

如果您正在使用mybatis guice這可以通過提供您的dataSourceProvider爲MyBatisModule這樣進行:

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

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

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

    }, 
    // other modules 
); 

YourDataSourceProvider應該能夠創建DataSource使用憑證從用戶界面得到。

在這種情況下,您仍然可以使用xml mappers for mybatis。