我配置了PostgreSqlDialect,但还是加载的MysqlDialect

我想连接pgsql数据库,在demo-config-dev.txt中我配置了正确jdbcurl、username、password、driverclass,但是启动DemoConfig.java后config对象中的dialect依然是MysqlDialect,这是什么愿意呢?

评论区

要输就输给追求

2019-04-22 18:23

看看DemoConfig.java 中插件加载模块,有可能是在那里写死的

zhangtianxiao

2019-04-23 11:04

activerecord的方言默认就是Mysql, 可以手动set改变, 不知道JFinal源码中有没有根据连接URL切换方言

zhangtianxiao

2019-04-23 11:05

上代码吧哥哥

GeorgeCao

2019-04-23 14:39

@zhangtianxiao
public static void main(String[] args) {
// base model 所使用的包名
String baseModelPackageName = "com.demo.common.model.base";
// base model 文件保存路径
String baseModelOutputDir = PathKit.getWebRootPath() + "/src/main/java/com/demo/common/model/base";

// model 所使用的包名 (MappingKit 默认使用的包名)
String modelPackageName = "com.demo.common.model";
// model 文件保存路径 (MappingKit 与 DataDictionary 文件默认保存路径)
String modelOutputDir = baseModelOutputDir + "/..";

// 创建生成器
Generator generator = new Generator(getDataSource(), baseModelPackageName, baseModelOutputDir, modelPackageName, modelOutputDir);
// 设置数据库方言
generator.setDialect(new PostgreSqlDialect());
// 设置是否生成链式 setter 方法
generator.setGenerateChainSetter(false);
// 添加不需要生成的表名
generator.addExcludedTable("adv");
// 设置是否在 Model 中生成 dao 对象
generator.setGenerateDaoInModel(false);
// 设置是否生成字典文件
generator.setGenerateDataDictionary(false);
// 设置需要被移除的表名前缀用于生成modelName。例如表名 "osc_user",移除前缀 "osc_"后生成的model名为 "User"而非 OscUser
generator.setRemovedTableNamePrefixes("t_");
// 生成
generator.generate();
}

GeorgeCao

2019-04-23 14:40

@zhangtianxiao 这是源码中JFinalDemoGenerator.java中的代码,我改成了generator.setDialect(new PostgreSqlDialect());但是还是加载的MysqlDialect

JFinal

2019-04-23 15:23

@GeorgeCao 上面的代码是配置的生成器, 只作用于生成 base model 以及相关文件

如果是使用的时候,要配置:
activeRecordPlugin.setDialect(new PostgreSqlDialect());

也就是说,这两处都要配置

GeorgeCao

2019-04-23 15:25

@JFinal 我全文检索了activeRecordPlugin.setDialect,找不到这句话,这是在哪个java文件里呢?

GeorgeCao

2019-04-23 16:00

@JFinal 知道了,谢谢啦,我在DemoConfig.java中public void configPlugin(Plugins me)方法中添加了一句
// 配置ActiveRecord插件
ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
arp.setDialect(new PostgreSqlDialect());

热门反馈

扫码入社