2017-09-27 11:01
设置成多少合适取决于数据库类型,例如 mysql 在数据量到达 5 千还是 5 万后会自动提交一次,即便你设置成 10 万都是没有意义的
建议的做法是,根据数据量选择一个小于数据库支持的 size。这个 batchSize 本质是为了让开发者选一个小于数据库支持的 size 值,好在碰到异常时可以针对本次提交的数据进行回滚,当然,你得开启事务才支持回滚,开启事务的方式与其它数据库操作 API 是一样的方法
此外,再延升一下,数据库支持的 batchSize 可能与配置有关,而这个配置可能是缓冲区的大小,而不是一个 int 型数值,所以可能与你每条数据中包含的字段内容长度有关,这个没有深入研究过,有兴趣、有时间的朋友可以翻看一下 mysql 文档
我个人一般用 1000 2000 顶多 3000 的 batchSize,避免了自动提交,可以回滚事务
2017-09-26 18:02
@pfjia maven 的设置是针对于 maven 为编译时有效,你用 IDEA 启动很可能是 IDEA 自己的编译方式,注意看 jfinal 手册,针对于多个口子都有配置,最好全配置好,用哪种启动方式都有一个口子对应上,省事
2017-09-26 17:58
@flower929 这个是 http 协议决定的,jfinal 从来不干预协议的事情
2017-09-26 16:44
@flower929 确保请求类型为 post 并且 enctype 为 "multipart/form-data" 即可,这个纯粹是前端 js 的问题
2017-09-26 16:42
@Deanzhangliang 看不出来对不对,因为程序不知道走没走你的这个 catch 块,也不知道你的 rendFailedJson(....) 内部的实现,建议单步调试看程序行为
2017-09-26 16:40
@victorlhh redirect 只能是 url,而不是能一个模板文件,所以,要么 redirect(action) ,要么 render("index.html")
注意用的什么模板引擎,jfinal 模板引擎用的 #(ctx),否则要用 ${ctx}