2019-07-10 11:34
@牛打下 默认转 json 的实现,会严格按字段名来转,如果你原来的字段是驼峰的就没问题
如果你的这个转换是很少出现,可以用下面的方法来做:
String json = FastJson.getJson().toJson(...);
renderJson(json);
也就是说多数情况使用默认的, 少数特殊情况使用指定的方式来转
默认的 JFinalJson 有一个好处:转换不依赖于 getter 方法,那么关联查询得到的字段值,以及 put 方法放入的字段值也会被转换
而 fastjson 的转换严格依赖于 getter 方法,所以无 getter 方法的值是无法转换的
各有利弊,选好默认,然后用好个别情况
我个人的使用习惯是:
1:mysql 中的字段名使用驼峰形式
2:model 生成 getter、setter 方法
3:配置: me.setJsonFactory(new MixedJsonFactory());
这个使用习惯,一是可以保障 JFinalJson、FastJson 在转 json 时的结果是一致的,因为无论是字段名与 getter 方法转出来的都是驼峰了
不仅转出来值是一致的,而且 MixedJson 支持转换 Model.put 进来的值,以及支持关联查询得到的关联表中的值,而这些值是没有 getter 方法的
2019-07-10 11:29
@tekeyoko actionKey 重复会明确报一个 action already exists 的异常, NoClassDefFoundError 这个一般是缺包引起的
2019-07-08 22:43
@Miii 这样大段的 sql 应该使用 sql 模板进行管理:
https://www.jfinal.com/doc/5-13
有关分页的问题,一定要看文档,里面针对各种问题做了解答:
https://www.jfinal.com/doc/5-6
如果是查询、分页慢的问题,用 mysql 的 explain 命令检查查询是否是在 "索引" 上进行的,否则如果数据量大肯定慢,只要是大数据量的全表扫描必然慢
注意:查询慢的问题必然与 jfinal 无关,因为 jfinal 只是将你的 sql 与 para 直接扔给了底层的 JDBC,并不会对你的 sql 有过多干预
JDBC 层面都慢了,那么只能优化 sql 或者索引