2017-07-18 17:00

第一个问题,batch 系列方法支持开启事务,当某条数据抛出异常时,前面的数据处理会回滚 ,但是不同数据库所支持的 batchSize 有所不同,如果不设置 batchSize,在超出默认支持范围时会自动提交事务。 因此 batchSize 可以让用户更好地控制事务

第二个问题纯属 sql 问题,单步调试解决

2017-07-18 15:02

jfinal 手册有红色字体强调过,不要使用 dao.set(...),具体原因见手册,此外下面的代码:
public static final User dao = new User();

改成:
public static final User dao = new User().dao();
可以避免你 dao.set(...) 操作

2017-07-18 11:42

@youyuyang 你的拦截器调用 inv.invoke() 没,如果没调用,那么 action 中的 renderJson(resultData) 根本没执行

2017-07-18 10:53

@XIAOXIAO_ 这都快一个月了,才解决?

2017-07-18 10:46

@XIAOXIAO_ 看到你的代码中有这么一句:
Plugins me = new Plugins() 就知道你是想独立于 jfinal 的 web 来使用 ARP,因为 Plugins 这个类仅仅在 jfinal 自己创建时才会起作用,内部会回调它里的一些方法

你自己 new Plugins 是完全没有任何意义的,你只需要手动调用其 start() 即可:
c3p0Plugin2.start();
arp2.start();

这也就是我所说的独立去使用,多调用个 start() 而已,手册上有

2017-07-17 23:46

配置方式参考一下首页下载的 jfinal demo,在 web.xml 中添加一个 JFinalFilter 即可,其它地方参考手册就好

2017-07-17 21:23

在第一个 action 中先使用 createToken 创建 token,回到页面时将该 token 值放入表单隐藏域中与数据一起提交到第二个 action,在第二个 action 中通过 validateToken 验证,用来判断是否重复提交

2017-07-17 18:46

@2222222 Kv.by 是静态方法,在创建 kv 对象的同时置入一个 key value 值,而 Kv.set 仅仅只是置入值,并不会创建 kv 对象,只要用一下就知道区别了

2017-07-17 17:33

最后补充一句,每次发新版本都可以在本站下载到 changelog.txt 文档,通常每次发版本是半年到一年左右,足够时间下载这个文档,以及升级了,有不少小伙伴永久保存了每个 jfinal 版本的所有资源

2017-07-17 17:32

jfinal 每次发新版本都会发布 changelog,看一下这个页面右侧的发布新闻链接:
https://www.oschina.net/p/jfinal

后面两个版本可能没直接贴出来 changelog,可以在本站的分享频道获取:
jfinal.com/share

最新版本的 changelog 可以在本站首页右侧下载到:
jfinal.com

此外,如果碰到任何问题,可以通过查看 jfinal 手册来解决,jfinal 手册第一章有对升级的说明

2017-07-17 17:29

jfinal weixin 很早就支持多公从号了,文档在此: http://git.oschina.net/jfinal/jfinal-weixin/wikis/home

2017-07-17 15:14

@youyuyang 调用过任何类型的 render 方法或者 forward redirect 方法都可以

2017-07-17 12:02

必然是 sql 放在 service 中更好,如果 sql 复杂可以放到 sql 模板文件之中,sql 无论放哪里,但数据库操作必须是放在 service 中

放在 service 中更有利于重用,以及做分布式与集群,如果放在 model 中,那么在做分布式集群时不方便将 model 抽取成独立的 module