2016-08-18 18:14

当然,你还可以在后面添加 where 控制一下,需要查询的 user 集合:where u.id in(1,2,3,4..)

2016-08-18 18:13

如果要一条 sql 统计所有用户,将 userId=? 换成 userId=u.id,并且将最后面的 where u.id=? 去掉即可:
select u.userName, t1.a1Num, t2.a2Num from user as u,
(select count(*) as a1Num from a1 where userId = u.id) as t1,
(select count(*) as a2Num from a2 where userId = u.id) as t2

2016-08-18 18:10

这是一个纯 sql 问题,sql 大致这样:
select u.userName, t1.a1Num, t2.a2Num from user as u,
(select count(*) as a1Num from a1 where userId = ?) as t1,
(select count(*) as a2Num from a2 where userId = ?) as t2 where u.id = ?
代码:Db.find(sql, userId, userId, userId);

2016-08-18 17:02

具体一点,将资源路径改为: src="/images/123.jpg", context path 改为 "/",这样就不会在 url 中出现 FBBL 这样的前缀了

2016-08-18 17:01

@ityuri 页面中的资源都用的相对路径,所以在请求以后这些资源会以浏览器 url 栏中当时的路径有关,例如:
你的图片 src="images/123.jpg",你的浏览器地址栏中的是 "/FBBL/gamesDetail",所以最终的资源路径是 src="/FBBL/gamesDetail/images/123.jpg",这个是 web 规范决定的,与 jfinal 无关
解决办法极其简单,资源路径使用绝对路径即可,以 "/" 打头即为绝对路径,这样的话路径就不会随着浏览器地址栏中的路径乱来了

2016-08-18 13:20

最后加上这句: renderNull();

2016-08-18 12:55

@lyh061619 目前版本的 ORM 开发效率已经非常高了,难道你能找到有比这更高效的?

2016-08-18 12:52

@lyh061619 用 jfinal 的 Db + Record 做统计查询极度顺爽,要是用别的技术得累死人

2016-08-18 12:13

很可能是多个应用使用该公众号向微信服务器请求过 access token,这种情况下,只有最后一次请求到的 access token 才有效,前面请求得到的会自动失效。
这种情况通常发生在如下情形:
1:多个应用程序使用同一个公众号,并各自发起 access token 请求
2:同一个应用的不同实例使用同一个公众号
3:在公众平台上使用其官方提供的在线工具获取 access token

2016-08-18 12:09

Db.batchUpdate(...) 已然提供了支持,因为 update 这个词不仅意味着可以 delete 还意味着可以 update。
此外,通常批量删除满足条件的数据就是一个 sql 的事,这样: Db.update("delete from table where a=? and b=? and c=?", x, y, z);

2016-08-18 11:40

补充一下 Sqls 的使用方法:
find(Sqls.get("accountListSql"), p1, p2, ..., pn);

2016-08-18 11:39

sql 比较长,可以放在外部文件中,然后使用 Sqls.java 这个工具类来加载使用。注意 Sqls 这个工具类是支持的 key=value 形式的配置,多行 sql 使用 "\"字符结尾来实现换行,例如:
accountListSql = select * from account \
where accountId=? \
and age > 18
对于以上这类有很多行的 sql,放在外部文件就不存在拼接的问题,直接书写就好。

此外,有些 sql 可能需要动态生成有些变动的项目,此时可以用一下类似于 freemarker的模板来写点代码来生成动态部,最好是先建一个 FreemarkerKit 工具类

2016-08-17 18:25

jfinal 社区还有点功能完善好后,会单开一个文档频道,文档将详细到方法、参数级别,常用功能会给出示例,多多关注社区动,近两天会有大更新

2016-08-17 18:03

还没支持,上个版本添加了 JsonRender、XmlRender 的支持,忘了加这个 TextRender 的支持,建议扩展一下,别忘了回社区再分享下

2016-08-17 14:43

即便在 baseModel 中生成了这个序列化版本 ID,对你的最终 Model 并无影响,你的最终 Model 在继承 BaseModel 以后,还是要生成序列化版本 ID,否则仍然还是会警告,这时你有两个选择,一个是在最终的 model 中生成它,二个是学习 baseModel 去除警告

根据 jfinal 的极简原则,如果做一件事起不到作用,那还不如不做。此外如果不生成还可以享受 java 生成默认序列化版本 ID 值的好处,这样当 baseModel 随着表结构演化以后,版本也随之变化,避免版本出错