2018-04-09 10:02

斜杠字符一个个增加或减少试一下,因为 enjoy 引擎自身也使用 "\" 字符作为转义字符,而后端 java 也使用了 "\" 为转义字符

应该是要再多加一个,改成: split("\\\.")

此外,要将异常贴出来,方便排错

2018-04-08 17:03

精细化的缓存 + 自动化缓存更新不是这么容易就做好的,你给的方案是针对于特定项目的,如果要做个 ORM 框架内部的 cache,容易出很多问题

做的话也不是没有可能,复杂度、性能都要做取舍,此外,缓存是做到业务层还是 ORM 层还有很多问题要考虑

暂时先不做这个

2018-04-08 16:58

@yjjdick1990 这个不仅是索引失效的问题这么简单,3 万条数据索引失败也不至于这么慢,这里慢就慢在 OR 条件引发的 30000 X 30000 的 30000 次全表扫描

2018-04-08 16:55

有不少同学问过这个问题,正好有需要,感谢你的分享

2018-04-08 16:54

配置为 warn 或者 error 级别

如果仍然希望配置为 debug 级别,但不希望输出太多信息,可以让针对不同的类、不同的 packag 来设置更高的级别,类似于:
log4j.logger.org.hibernate.SQL=WARN
log4j.logger.org.apache=WARN
log4j.logger.org.apache.catalina=ERROR
log4j.logger.org.apache.commons=WARN

注意上面的 log4j.logger 这个前缀与你前面的配置有关,而这个前缀后面的下面这些东东才是真正被控制的 package 与 class
org.hibernate.SQL=WARN
org.apache=WARN
org.apache.catalina=ERROR
org.apache.commons=WARN

2018-04-08 14:26

String[] idArray = getParaValues();
String ids = Strkit.join(idArray, ",");
Db.update("delete from tableName where id in(" + ids + ")");

2018-04-08 14:23

这个 sql 造成了全表多次扫描,将 where 部分的两个 like 加上扩号:
WHERE l.mid=m.id and (m.nickname like '%设置%' or l.op like'%设置%') LIMIT 0,10

注意看上面的那对小扩号,这个是 sql 基础问题,sql 本身如果有性能问题肯定不在 jfinal 所能控制的范围内

你可以将这个 sql 直接在 mysql 控制台执行,照样耗时 10 分钟

2018-04-08 14:20

@qzm 在外层再套一个 select * from (原 sql) as temp 即可

2018-04-07 18:14

@215115704 在控制台看到微信回调你的项目输出 jfinal action report 为准则

2018-04-07 16:59

关键是要先搭好一个可供开发、调试的环境,这里有详细的办法:
https://gitee.com/jfinal/jfinal-weixin/wikis/JFinal%20weixin%20demo%E5%92%8C%E8%B0%83%E8%AF%95

调试环境弄好以后,请求到达你的程序,一步一步走,秒秒钟解决问题

当请求无法到达你的项目,就不要去折腾项目了,而是要先要去折腾从微信平台到你项目的这个通道

2018-04-07 16:57

为啥少写个分号 ";"

2018-04-06 18:06

很有用的学习资源,感谢分享

2018-04-06 16:12

eclipse 切换到 java 透视图,不要使用 J2EE 透视图,里头很多误判性提示

2018-04-06 11:52

jfinal 3.4 打算将 sql 管理用到的 Engine 对象默认使用 ClassPathSourceFactory,因为大多数情况下 sql 文件都是放在 src/main/resources 下面的,最终人支编译到 class path 下面去,或者被打成 jar 包,大家有什么建议?

感谢你的分享

2018-04-06 11:49

jfinal 3.4 的 PathKit.getRootClassPath() 已添加这个改进,感谢你的分享