2019-06-02 08:58

java.sql.Date 类型也是可以有时、分、秒的, 是否具有时、分、秒与类型关系不大,只与你的变量中是不是真的有时、分、秒数据有关

可以通过指定 date pattern 来输出一个 java.sql.Date 来验证我前面所说

因此,解决这个问题的最简单办法是直接使用 getDate(...)

这里注意一个基本问题:jfinal 是不干预从数据库过来数据的类型的,你碰到的这个 java.sql.Date 是底层 JDBC 转化的结果

2019-06-01 22:35

解决办法是在 configConstant(Constants me) 中配置一下:
me.setConfigPluginOrder(1);

这个次序的调整在俱乐部群里的 jfinal-4.1-changelog.txt 中有说明:
是为了让 configRoute 中配置的 routes 级拦截器可以用上 configInterceptor 中配置的全局拦截器

2019-06-01 22:28

@dxan 插入数据、删除数据,在此统一抽象为更新操作

2019-06-01 17:44

insert into 这类 sql 要使用 Db.update(sql) 不能使用 Db.find(sql)

前者用于更新数据库,后者用于查询,两者有本质区别

2019-06-01 17:40

demo 中使用的 DruidPlugin 就是在用 druid 这个连接池,这方面不需要自己操心

2019-06-01 17:39

此外,参数不要拼接在 sql 中,既不方便,也有 sql 注入的危险

要这么来用:
String sql = "insert into students(id, name, age, sex, remark) values (?, ?, ?, ?, ?)";
Db.update(sql, 145, "asdjh", 6, "男", "无");

2019-06-01 17:37

用于更新的 sql 怎么能使用 Db.find(sql) 呢?

要使用 Db.update(sql);

2019-06-01 17:36

jfinal 高版本是 JDK 8 起步, JDK 8 有很多重要功能,性能也更高,并且是 LTS 版本,还在使用 1.6、1.7 的项目值得升级

2019-06-01 16:43

将这个项目源码下载,然后升到 jfinal 最新版本就可以了,升级有详细的文档:
https://www.jfinal.com/doc/14-1

这个项目用到的 jfinal API 并不多,所以升级或许只需要改一下版本号就可以了

2019-06-01 16:42

先调用一次 getFile() ,然后观察一下 jfinal action report 输出的 parameter 部分,根据情况来使用 getPara 方法

2019-06-01 16:40

@jianghe727 我前面提到的监听是指 java web 标准组件中的 Listener,如果你谈到的 quartz 的 job 监听是基于 java web 标准组件 Listener 实现的,那是可以的

2019-06-01 15:33

@kongss jfinal 的 RedisPlugin 仅仅是对 Jedis 这个第三方进行的极薄封装,如果 Jedis 支持这些功能,可以自己配置,顶多只需要继承 RedisPlugin 然后覆盖父类里头的部分代码

2019-06-01 15:32

@kongss 试一试对 RedisPlugin 底层依赖的 jedis 进行配置,通过下面的代码拿到 jedis 对象:
JedisPoolConfig config = RedisPlugin.getJedisPoolConfig();

JedisPoolConfig 里头有一些配置方法,看能不能满足你的需求

2019-06-01 15:28

@jianghe727 在 jfinal 中使用监听器与往常没有什么不同,直接在 web.xml 中添加即可

如果用的是 jfinal undertow, 添加监听器参考文档:
https://www.jfinal.com/doc/1-4

注意看第 12 小节:添加 Filter、WebSocket、Servlet、Listener