不说废话。先上配置
public void configPlugin(Plugins me) {
//配置数据库连接信息
DruidPlugin dp = new DruidPlugin(getProperty("jdbcUrl"), getProperty("user"), getProperty("password"));
dp.setDriverClass("oracle.jdbc.driver.OracleDriver");
dp.addFilter(new StatFilter());
WallFilter wall = new WallFilter();
wall.setDbType("oracle");
dp.addFilter(wall);
me.add(dp);
// 配置ActiveRecord插件
ActiveRecordPlugin arp = new ActiveRecordPlugin(dp);
// 配置Oracle方言
arp.setDialect(new OracleDialect());
arp.setContainerFactory(new CaseInsensitiveContainerFactory());//忽略大小写
me.add(arp);
arp.setShowSql(true);
}
最关键的是需要配置oracle
这个问题的原因是这个样子的。
ActiveRecordPlugin 一开始会映射所有表。所以会去数据库执行 select * from table。 JFinal 默认会生成 select * from 'table' where 1=2 这样的语句。 在oracle中 ' 单引号是会报错的,应该是使用双引号。 当然不只是这一个地方。 其他地方都要改。 所以得配置一下方言。
// 配置Oracle方言
arp.setDialect(new OracleDialect());
//忽略大小写
arp.setContainerFactory(new CaseInsensitiveContainerFactory());