数据统计中的Sql管理与动态生成

#sql("findGirl")
  select count(*) from girl where age > #para(0) and weight < #para(1)
#end
public long getCount(int age,int weight){
		
	SqlPara sqlPara = dao.getSqlPara("girl.findGirl",
		age,weight);
	return dao.xxx(sqlPara);
}


这里需要返回一个`数据量统计`,有推荐好的调用方法吗? 

如果没有使用!!!

使用Db.queryLong("拼接SQL",xxx);好呢?

还是查询一个list再通过list.size() 返回数量。

是否考虑添加Db.queryLong(SqlPara)的重载方法呢?

评论区

JFinal

2017-11-19 19:31

Db.queryLong(sp.getSql(), sp.getPara()) 即可打完收工

JFinal

2017-11-19 19:32

jfinal 中所有使用 String, Object... paras 参数的地方都可以使用 SqlPara 参数,只需要调用一下里面的两个 getter 方法即可

Javen

2017-11-20 10:40

@JFinal get 感谢波总指点

JFinal

2017-11-20 10:42

@Javen jfinal 自然也是想提供 queryLong(SqlPara) 这个方法的,但是这类 queryXxx 方法太多了,如果都提供的话,API 数量会急剧膨胀

所以,只能为最核心的 API 提供 SqlPara 参数,其它情况可以通过调用一下 SqlPara 的两个 getter 方法实现

Javen

2017-11-20 10:53

@JFinal 恩 下载文件简单做Hash校验,建议在HashKit中重构封装一下。使用场景还是比较多的
//获取文件的MD5值
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] bytes = md.digest(Files.readAllBytes(file.toPath()));
String md5 = HashKit.toHex(bytes);

JFinal

2017-11-20 10:57

@Javen jfinal 3.3 这版已经定版了,jar 包、jfinal demo 之类的都做完了,你的需求已备忘至 jfinal 3.4

Javen

2017-11-20 11:24

@JFinal 我重构的代码已发Pull Request

JFinal

2017-11-20 11:27

@Javen pull request 发得太早了,因为 HashKit 在 jfinal 3.3 已经有不少改进,但还没有提交到 git,肯定是无法直接接收你的 pull request 的

Javen

2017-11-20 11:49

@JFinal 哈哈 确实无法提交提示这个----------项目 JFinal/JFinal 已被其拥有者设置为“禁止提交 Pull request”

JFinal

2017-11-20 12:18

@Javen 不着急, jfnal 3.3 发布后再弄

Javen

2017-11-20 15:03