2017-10-13 11:17
@djs19960601 如果要打成 jar 包来运行,建议将 webRootPath 这个参数拿出来当成配置项,与 jdbcUrl 连接一样当成配置
2017-10-13 11:10
@咔嚓 三元表达式也可以:
#(question.Id ?? != null ? "disabled = 'disabled'" : null )
或者:
#(question.Id ?? != null ? "disabled = 'disabled'" : "" )
jfinal 的表达式是直接与 java 打通的,会用 java 就会用 jfinal enjoy 模板
2017-10-13 11:08
@silenceViking 不指定主键名的时候,默认为 "id",如果不是这个值,需要手动指定,例如:
Db.save("user", "user_id" record);
2017-10-13 10:54
@咔嚓 我以为你是碰到问题了呢? 原来是分享,没看仔细,不好意思 ^_^
我的用法少打了一对扩号,建议用用
2017-10-13 10:31
@flyinkeke 分页功能需要有一个查询总页数的 sql 存在,例如 mysql 是这样:
select count(*) from ....
但是 count(*) 这种查询是与 order by 无关的,为了提升性能需要去掉 order by,mysql 以外的数据库干脆就会对 count(*) 带 order by 的 sql 直接报错,不允许
而要去掉这个 order by, 通常要用正则表达式。 但是 sql 语句可以是极其灵活和复杂的,例如你代码中的:
ORDER BY user_id NOT IN(7,8,9),score DESC;
用正则表达式确实可以覆盖并去掉你上面的 order by , 但代价是性能下降至少一个数量级
因此 jfinal 采用了如下权衡的方案:
1:对 order by 的移除,仅使用不影响性能的表达式,仅移除最常用的简单 order by 格式
2:对于不能移除的,使用 paginateByFullSql(...) 方法解决
设计就是权衡与选择,没有完美的设计