感觉通过new AutoTableBindPlugin应该是支持多数据源的吧?如何在继承Model后通过注释方式指定数据源?

发布于 2021-11-23 13:37:18 字数 159 浏览 792 评论 4

@绝望的八皮 你好,想跟你请教个问题:


就是懒得在config类中写代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

醉酒的小男人 2021-11-28 17:01:56

http://www.oschina.net/p/jfinal-dreampie  插件  

//配置druid连接池
        DruidPlugin druidDefault = new DruidPlugin(getProperty("db.default.url"), getProperty("db.default.user"), getProperty("db.default.password"), getProperty("db.default.driver"));
        // StatFilter提供JDBC层的统计信息
        druidDefault.addFilter(new StatFilter());
        // WallFilter的功能是防御SQL注入攻击
        WallFilter wallDefault = new WallFilter();
        wallDefault.setDbType("h2");
        druidDefault.addFilter(wallDefault);

        druidDefault.setInitialSize(getPropertyToInt("db.default.poolInitialSize"));
        druidDefault.setMaxPoolPreparedStatementPerConnectionSize(getPropertyToInt("db.default.poolMaxSize"));
        druidDefault.setTimeBetweenConnectErrorMillis(getPropertyToInt("db.default.connectionTimeoutMillis"));
        plugins.add(druidDefault);

        //Model自动绑定表插件
        AutoMultiSourceTableBindPlugin tableBindDefault = new AutoMultiSourceTableBindPlugin(druidDefault, SimpleNameStyles.LOWER);
        tableBindDefault.setContainerFactory(new CaseInsensitiveContainerFactory(true)); //忽略字段大小写
        //tableBindDefault.addExcludePaths("cn.dreampie.function.shop");
        tableBindDefault.setShowSql(getPropertyToBoolean("devMode", false));
        //非mysql的数据库方言
        tableBindDefault.setDialect(new AnsiSqlDialect());
        plugins.add(tableBindDefault);


      //配置druid连接池
      DruidPlugin druidCustom = new DruidPlugin(getProperty("db.custom.url"), getProperty("db.custom.user"), getProperty("db.custom.password"), getProperty("db.custom.driver"));
      // StatFilter提供JDBC层的统计信息
      druidDefault.addFilter(new StatFilter());
      // WallFilter的功能是防御SQL注入攻击
      WallFilter wallDefaultCustom = new WallFilter();
      wallDefault.setDbType("h2");
      druidDefault.addFilter(wallDefaultCustom);

      druidDefault.setInitialSize(getPropertyToInt("db.custom.poolInitialSize"));
      druidDefault.setMaxPoolPreparedStatementPerConnectionSize(getPropertyToInt("db.custom.poolMaxSize"));
      druidDefault.setTimeBetweenConnectErrorMillis(getPropertyToInt("db.custom.connectionTimeoutMillis"));
      plugins.add(druidDefault);

      //Model自动绑定表插件
      AutoMultiSourceTableBindPlugin tableBindCustom = new AutoMultiSourceTableBindPlugin(druidDefault, SimpleNameStyles.LOWER);
      tableBindCustom.setContainerFactory(new CaseInsensitiveContainerFactory(true)); //忽略字段大小写
      //tableBindDefault.addExcludePaths("cn.dreampie.function.shop");
      tableBindCustom.setShowSql(getPropertyToBoolean("devMode", false));
      //非mysql的数据库方言
      tableBindCustom.setDialect(new AnsiSqlDialect());
      plugins.add(tableBindCustom);

db.default.driver=org.h2.Driver
db.default.url=jdbc:h2:file:./db/dreampie
db.default.user=sa
db.default.password=file password dreampie
# Connection Pool settings
db.default.poolInitialSize=10
db.default.poolMaxSize=20
db.default.connectionTimeoutMillis=1000
#In production mode, migration is done automatically if db.${dbName}.migration.auto
#is set to be true in application.conf. Otherwise it failed to start when migration is needed.
db.default.valid.clean=true
db.default.migration.auto=true
db.default.migration.initOnMigrate=true

配置两份数据库  properties就行了

丢了幸福的猪 2021-11-27 18:20:37

JFinal 提供的 Db + Record 模式支持多数据源,以后考虑让 Model 也支持多数据源

韬韬不绝 2021-11-26 23:29:18

数据源就是一个datesource.一个arp 绑定一个ds.那么建立多个arp 不就是多数据源了

不乱于心 2021-11-26 20:35:10

AutoTableBindPlugin只是简单的转调activiRecordPlugin的方法,ar中能支持的就能支持不能支持的也不能.arp.addMapping貌似是不能支持多数据源的吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文