2019-05-24 20:24

@hankss 旧版手册应该快两年都没提供下载了

文档是一直在更新的,在线版能保障是最新的,所以不再提供手册下载,这个也是绝大多数开源项目的做法

最近对在线版本改进了用户体验,使用起来十分方便

退一步讲,离线版本也是提供办法获取的:
http://www.jfinal.com/share/1436

2019-05-24 18:52

me.add(new EhCache())

2019-05-24 16:34

忘了添加 hGetCounter(String key, String field) 方法了,

可以写个工具方法先得到 jedis 对象,再从里头获取,记得要在 finally 中关闭 jedis 连接

2019-05-24 16:29

非常有用的分享,我也收藏一份,感谢分享

2019-05-24 15:36

注意看异常:
Caused by: java.sql.SQLException: connection holder is null

难道是你的数据库没连上?

2019-05-24 15:36

后面再改吧,先弄弄 4.0 发布的事

2019-05-24 15:07

@山东小木 4.0 非常爽,我也用上很久了,一点问题没有

个别同学碰到一个带有泛型的类不能代理的问题,也是小问题,周末搞定一下,可以安心弄自由开发者联盟了

2019-05-24 15:04

service 事务的边界正如你需求的那样,从你点击开始直到节束,无论中间有多少步

你碰到的问题,很可能是因为事务级别不够引起的,对于 mysql 来说 jfinal 比较高版本的事务级别是:
Connection.TRANSACTION_REPEATABLE_READ;

这个值是:4, 对于一般的应用是够用的

oracle 下面值是: 2

在使用事务的时候,有一件事情要特别注意,如果你是将数据库的值先读到内存,然后改这个值,再存到内存,那么事务级别是要相应提高的,例如:
int cash = Db.queryInt("select cash from account where id = ?", 123);
cash = cash + 100;
Db.update("update account set cash = ? where id = ?", cash, 123);

如果你的更新操作是用 sql 实现,直接在数据库中实现的,那么事务级别可以更低,例如:
Db.update("update account set cash = cash + 100 where id = ? ", 123);

注意区别上面两种用法,前面的用法对数据的操作是在你的应用中, 后面的用法是在 mysql 数据库中,这两种用法对事务级别的要求是不同的,前者起码要锁住 id 值为 123 的行,如果更新范围大需要锁表,这个锁行、锁表就是与事务级别有关的,事务级别越高,锁的范围就越大

2019-05-24 14:56

如果你是 jfinal 3.8 升上来的,什么也不用改,平滑升级

如果你是更低的版本,升到 3.8 有详细的文档:
https://www.jfinal.com/doc/14-1

升到 3.8 等于就升到了 4.0

俱乐部微信群会在开发者联盟上线以后创建

2019-05-24 14:53

跨域有很多办法,如果是从 jfinal undertow 着手的话,可以配置跨域的 filter , jfinal undertow 配置 fitler 的方法见文档:
https://www.jfinal.com/doc/1-4

注意看第 12 小节

具体配置成什么 filter , 在网上搜索一下:跨域、filter

2019-05-24 14:52

如果用到文件上传功能的话,拦截器中也要先 inv.getController().getFile()

2019-05-23 21:11

最重要的资源都在 maven 中心库,改一下 pom.xml 就可以自动下载

本站的下载文件除了 demo 以外,其它的都在 maven 中心库可以下载

最后,旧版本也可以通过改一下下载链接的版本号下载到

2019-05-23 17:25

什么浏览器? 版本号是啥,需要重现后针对性解决