`
coolszy
  • 浏览: 1406879 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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类型的了,不知搞什么飞机

 

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

分享到:
评论
10 楼 coolszy 2009-09-11  
fyf_008 写道

。。。。。。。知道什么叫通用?????

返回值,你永远用long,不用int,不就没问题。

怕麻烦干脆,


long executerSql(String sql)
{
     Object obj=......执行查询的结果。。。。。
      return Long.parseLong(obj.toString());//速度巨快,绝对不损失效率
\\int 只能到21亿,不用
}





为什么我看到他留言的内容和格式那么不爽呢
9 楼 fyf_008 2009-09-11  

。。。。。。。知道什么叫通用?????

返回值,你永远用long,不用int,不就没问题。

怕麻烦干脆,


long executerSql(String sql)
{
     Object obj=......执行查询的结果。。。。。
      return Long.parseLong(obj.toString());//速度巨快,绝对不损失效率
\\int 只能到21亿,不用
}



8 楼 IceWee 2009-09-11  
用的Oracle,返回的是Long
7 楼 iceCreams 2009-09-11  
貌似MYSQL里面提取出来的数据没有INTEGER。。。。。。。。。。。。
6 楼 fyf_008 2009-09-11  


这帖子发在入门版里面也应该被删除吧。。。。。。。????????????????????
5 楼 chenzhou0418 2009-09-11  
不是吧,我使用的hibernate是这个版本:Hibernate-Version: 3.1.3

int num = (Integer) session.createQuery(
                    "select count(id) from Users").uniqueResult();

查看数据库对应用户表的记录条数,返回类型不是Long类型的,而且在项目中也没有发现转换异常
4 楼 ray_linn 2009-08-24  
汗。。intvalue..好基本 吧?
3 楼 阳光晒晒 2009-08-24  
count用String接....

2 楼 coolszy 2009-08-24  
daquan198163 写道
.intValue()
另:jsp里可能不支持jdk5的autoboxing


对了,原来使用.SIZE明明是两条数据,却显示为64
使用.intValue()才成功
谢谢LS提醒
1 楼 daquan198163 2009-08-24  
.intValue()
另:jsp里可能不支持jdk5的autoboxing

相关推荐

    sqlserver自定义函数

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[w01]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[w01] ---在sql2005下创建测试数据表,如果是sql2005则用本段来...

    mysql数据库的基本操作语法

    select id, name from temp; 删除视图: drop view view_temp; 显示创建语法: show create view v_temp; Ø DML语句 DML主要针对数据库表对象的数据而言的,一般DML完成: 插入新数据 修改已添加的数据 删除...

    2009达内SQL学习笔记

    如果已有锁则自动退出:Select id,salary From s_emp where id=1 For Update NoWait; FOR UPDATE :可以再加 OF 精确到某格。如: ... For Update OF salary ... 注意要解锁。 五、ORDER BY 子句,排序 Order ...

    PHP轻量级框架DQFramework.zip

    Count count($table, $where) table [string] 表名. where (optional) [array] WHERE 条件. Return: [number] 行的数量. Max max($table, $column, $where) table [string] 表名. column [string] 查询的字段列. ...

    ORM软件monalisa-orm.zip

    //SQL: SELECT name, count(*) as cnt FROM _THIS_TABLE // WHERE status>=0 GROUP BY name ORDER BY name ASC DataTable<DataMap> newTable= rs.select("name, count(*) as cnt","status>=0","name ASC","GROUP ...

    sql试 题答案和试题

    4、 在SELECT语句的FROM子句中最多可以指定_______个表或视图,相互之间要用________分隔,当所查询的表不在当前数据库时,可用___________________________格式来指出表或视图对象。 5、 服务器网络实用工具的...

    SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别.doc

    SELECT @Nums=COUNT(1) FROM t_student WHERE Score >=@Score IF(@Nums>0) RETURN 1 ELSE RETURN 0 END GO 复制代码 该存储过程涉及了 查询操作、返回值和输出参数,我们来看用EXEC 命令如何调用: 复制代码 ...

    asp.net面试题

    A.Select count(*) from (select top 10 * from table order by bb) tb group by cc B.update set bb = bb + 1 from table C.Select count(*) from (select distinct * from table) tb group by cc D.delete * from...

    springmybatis

    select * from `user` where id = #{id} </select> 下面对这几个配置文件解释下: 1.Configuration.xml 是 mybatis 用来建立 sessionFactory 用的,里面主要包含了数据库连接相关东西,还有 java 类所对应的...

    MySQL中文参考手册

    + 5.4.2 SELECT INTO TABLE + 5.4.3 事务(Transactions) + 5.4.4 存储过程和触发器 + 5.4.5 外键(Foreign Keys) # 5.4.5.1 不使用外键的理由 + 5.4.6 视图(Views) + 5.4.7 '--'作为一个 注解的开始 o 5.5 ...

    ASP.NET常用代码

    string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString() 4.删除表格记录警告 private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e) { switch(e.Item.ItemType) {...

    存储过程的安全及性能优化

    存储过程的安全及性能优化 ... 临时表中插入数据过大,可使用select into 代替 create table  使用了临时表,要在存储过程最后显式删除  避免使用大临时表与其他大数据量表的连接查询和修改

    MYSQL

    5.1 MySQL对ANSI SQL92 的扩充 5.2 以ANSI模式运行 MySQL 5.3 MySQL相比ANSI SQL92的差别 5.4 MySQL 缺乏的功能 5.4.1 子选择(Sub-selects) 5.4.2 SELECT INTO TABLE 5.4.3 事务...

    MySQL中文参考手册.chm

    7.9 OPTIMIZE TABLE (优化表) 句法 7.10 DROP TABLE (抛弃表)句法 7.11 DELETE (删除)句法 7.12 SELECT (精选)句法 7.13 JOIN (联接)句法 7.14 INSERT (插入)句法 7.15 REPLACE ...

    xheditor-1.1.14

    Table:表格 Source:切换源代码模式 Preview:预览当前代码 Print:打印 Fullscreen:切换全屏模式 About:关于xhEditor skin:皮肤风格选择 参数值:default(默认风格),o2007blue(Office 2007 蓝色),o2007silver...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    echo count($a); // 打印出3,因为该是数组有3个元素 // 用一个语句定义一个数组并赋值 $myphonebook = array ( "sbabu" => "5348", "keith" => "4829", "carole" => "4533" ); // 噢,忘了教长吧,让我们添加一个...

    C#编程经验技巧宝典

    C#编程经验技巧宝典源代码,目录如下: 第1章 开发环境 1 <br>1.1 Visual Studio开发环境安装与配置 2 <br>0001 安装Visual Studio 2005开发环境须知 2 <br>0002 配置合适的Visual Studio 2005...

Global site tag (gtag.js) - Google Analytics