select count(id) from table 返回值

   环境说明:

      测试数据库为Mysql数据库,其他数据库未知

      测试语言为Java

      数据库操作使用dbutils包,不知和这个是否有关

   

    select count(id) from table这条SQL语句作用大家都明白什么作用了,本来一直认为返回值为一整形结果,但是试试胜于雄辩。 刚刚在写一个jsp程序,数据库操作使用了dbutils包,使用了select count(id) from table 这条语句计算table表中的记录数,结果使用Integer接收,运行测试,报错了

java.lang.ClassCastException: java.lang.Long

 

知道是类型转换的问题了,同时也迷惑的,count()的结果怎么是long类型的呢,不确定,在获取结果后面加入getClass方法,测试显示类型果真是Long类型的,这才确定count()的结果为Long类型了。但是Long类型怎么转成Integer类型呢,说实话还真没试过,在结果前面加入(Integer)强制转换,不行的哦。查文档,终于知道了原来在long类型结果后面加入.intValue()就能转换成功了。

 

PS:百度一下,得知hibernate版本之间也存在这个问题,在Hibernate3.0之前是Integer类型的,但是如果用了Hibernate3.0和Hibernate3.1之后就是Long类型的了,不知搞什么飞机

 

为了自己的学习、减少在程序上遇到类似的问题解决的需要,在此记录,以供后面的观者借鉴。

你可能感兴趣的:(sql,mysql,Hibernate,jsp,百度)