Db.queryInt用法请教~

ramnight 发布于 2014/07/09 16:09
阅读 2K+
收藏 0

@JFinal 你好,想跟你请教个问题:老大,我用Db.queryInt("select count(1) from user")的时候,报下面的错。

====================================================

java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer

====================================================

DEBUG到DbPro.queryColumn方法,发现List<T> result = query(sql, paras);这个result里面只有一个[0],但是这个0居然是Long型的。这是bug吗?还是我用错了?请指教~

(我用Db.queryLong就不会出错

加载中
0
JFinal
JFinal

        sql 中的 count sum 等函数返回的结果会自动变成 Long,这是 JDBC 自动进行转换的,因为函数计算可能会数据溢出,例如对多个非常大的 Integer 数据进行 sum 时超过Integer.MAX_VALUE时就数据溢出了。

    使用 Db.queryLong(sql) 即可

JFinal
JFinal
回复 @我是车子啊 : 例如,你要查找某个nickName 所对应的id号:Db.queryInt("select id from user where nickName=? limit 1", "james");
我是车子啊
我是车子啊
老大 queryInt这个方法有正确的打开方式么,能不能示例一个
ramnight
ramnight
谢老大指点
返回顶部
顶部