JFinal

登录 注册

你好,请问有jfinal , MybaitsPlug 配置 mysql+oracle 多数据源的找不到数据库问题

DemoConfig.java
/**
 * 多数据源
 */
public final void configOtherDB(Plugins me) {
   // 读取数据库配置
   loadPropertyFile("config/otherdbs.properties");
   if(getProperty("dbsources").equals("")) return;
   String dbsource = getProperty("dbsources");

      DruidPlugin dp = new DruidPlugin(getProperty(dbsource + ".jdbcUrl"),getProperty(dbsource + ".user"),
            getProperty(dbsource + ".password"));
      dp.setDriverClass(getProperty(dbsource + ".driverClass"));
      dp.addFilter(new StatFilter());
      dp.setMaxActive(getPropertyToInt(dbsource + ".dbMaxActive"));
      if (RapidConsts.isIS_DEV_MODE()) {
         dp.setInitialSize(1);
      } else {
         dp.setInitialSize(getPropertyToInt(dbsource + ".dbInitSize"));
      }
      WallFilter wall = new WallFilter();
      wall.setDbType(getProperty(dbsource + ".dbType"));
      dp.addFilter(wall);
      me.add(dp);
      // 配置数据库操作工具
      int dbToll = configDbTool();
      RapidConsts.setCURRENT_DB_TOOL(dbToll);
      switch (dbToll) {
         case RapidConsts.DB_TOOL_ACTIVERECORD:
            // 配置ActiveRecord插件
            ActiveRecordPlugin arp = new ActiveRecordPlugin(dbsource, dp);
            me.add(arp);
            arp.setDialect(new OracleDialect());
            arp.setShowSql(RapidConsts.isIS_DEV_MODE());
            break;
         case RapidConsts.DB_TOOL_MYBATIS:
            MyBatisPlugin myBatisPlugin = new MyBatisPlugin(dbsource, dp);
            me.add(myBatisPlugin);
            myBatisPlugin.setShowSql(RapidConsts.isIS_DEV_MODE());
            break;
      }
}
#dbsources 使用逗号分隔的数据源id,数量必须跟下边明细配置的总记录一致 不能使用druid 对于mysql数据库,必须保证dbsourcedbname的名称一致
dbsources = sxts

#zhs
sxts_zhsbpt.driver = oracle.jdbc.driver.OracleDriver
sxts_zhsbpt.jdbcUrl = jdbc:oracle:thin:@192.71.187:1521:orcl
sxts_zhsbpt.user = SXTS
sxts_zhsbpt.password = 1357g
sxts_zhsbpt.dbType = oracle
sxts_zhsbpt.dbMaxActive = 150
sxts_zhsbpt.dbInitSize = 40

web调用:

public void run() {
    Bean bean = new Bean();
    bean.put("currentRyxx_nsrsbh", nsrsbh);
    try {
        new RapidDao();// 查询conts之前 先初初始化默认dao
        // 查询待同步数据
        List<Bean> list =   new RapidDao("dbsource").selectListByXml(
                        "api_sb_request_" + mainBean.getStr("dbtype")
                                + "_select", mainBean);
    } catch (Exception e) {

        e.printStackTrace();
    } finally {
        new RapidDao();// 通过构造函数 初始化默认数据源
    }
}

预想结果:  list 有值 , 测试结果: 报数据库找不到表  com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'stxt.sb_request' doesn't exist

实际 那张表在oracle中,而数据库也没自动切换

new RapidDao("dbsource")这行就找不到oracle数据源了


评论

  • 12-07 12:20
    MybaitsPlug 这个插件我也不了解,只能找下这个项目的作者,或者看看他的文档
  • 12-07 14:51
    @JFinal 好的,谢谢!
  • 12-07 21:33
    既然选择了jfinal,为什么又要用mybatis,难道jfinal的orm还不符合你需求吗
  • 发送