2018-10-12 09:06

@Mr.moster jfinal 在底层就是将你的 sql + para 直接扔给 JDBC 处理的,所以只要是 JDBC 支持那 jfinal 一定就支持了

因此,用纯 JDBC 做个测试就知道原因了,具体办法是:
// 通过 jfinal 的工具类拿到 JDBC 的数据库连接
Connection conn = DbKit.getConfig().getConnection();

// 用纯 JDBC 的方法执行你自己的 sql
conn. prepareStatement(sql);
pstmt. executeQuery();

以上的 sql 参数是你的代码出异常时的那个 sql,将其复制进来即可,可能需要单步调试才能得到这个 sql

通过上面的方式你会发现,JDBC 本身不支持这条 sql,解决办法自然就出来了

2018-10-11 16:43

注意表名的大小写,以及表名前后有无空格,还要注意一下 grade 是不是 postgresql 的保留字,试着换一个表名看看会不会出这个错,用排除法定位错误

2018-10-11 11:35

升级到最新版本 jfinal 3.5 才可以

此外,jetty-server 升到 2018.11 这个版本

2018-10-11 10:53

@黑猫惊涨 由于 jfinal 3.5 支持了 action 带参功能,也就是说以前你在 BaseControlelr 中的那些带参的方法在 jfinal 3.4 的时候不是 action ,但到了 3.5 变成了 action

所以可能会出现 actionKey 冲突,因为多出来了一些 BaseController 中的 actionkey,这个正是 @NotAction 的应用场景,加上 @NotAction 极其正确的做法

2018-10-11 10:51

@从头再来 这就奇怪了,我估计是你的某个 jar 包中存在 ehcache.xml , jar 包中的也是可以读到的

2018-10-11 10:47

这个我先备望一下,感谢你的反馈

2018-10-11 10:46

RedisPlugin 有一个 getJedisPoolConfig() 方法,拿到 JedisPoolConfig对象后,直接配置里面的很多配置即可

2018-10-10 21:08

不能用,需要这个配置

2018-10-10 16:20

换用 jfinal 提供的另外两个数据源:
1:DruidPlugin
2:HikariCpPlugin

c3p0 好多年不更新了

2018-10-10 11:10

这个是典型的全局拦截器的应用场景,看一下全局拦截器的用法

此外,要注意,如果你用的是 Validator,这个东东本质也是拦截器,所以配置方式也一样

2018-10-10 11:09

主要是 eclipse 下的开发文档中提到了一个 jetty-server-xxx.jar 包,而现在 jfinal 3.5 下面的 jetty-server-2018.11.jar 还没时间打包

2018-10-10 11:07

因为这部分要为最新版本的 jfinal 3.5 做出调整,还没来得及,就先屏掉了

2018-10-10 10:14

@錢勢惘導 从 3.5 这版本开始,最低要求 JDK 1.8 了, 1.8 基本已经普及了

2018-10-10 09:29

为下一步大幅度创新做准备,3.5 是以 JDK 1.8 起步的

况且现在 JDK 11 都正式发布了,JDK 11 是长期维护版,1.8 早就普及了, 1.8 的性能比 1.7 要好很多,而且还有 lambad 等新特性

2018-10-09 20:33

你确定 slid 这个参数值是正确的?

jfinal 执行查询是直接转调的底层 JDBC,是不可能出错的