`
coolszy
  • 浏览: 1412394 次
  • 性别: 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

相关推荐

    计算机二级mysql数据库程序设计练习题(五).doc

    例如,如果你想要获取一个表中所有不同的城市名称,可以使用 `SELECT DISTINCT city FROM table`。 2. 分页查询:在 MySQL 中,可以使用 `LIMIT` 关键字实现分页效果。例如,`LIMIT offset, limit` 可以跳过 `...

    sql语句的应用查询

    1. **COUNT()**:计算行数,如`SELECT COUNT(*) FROM table_name;`。 2. **SUM()**:求和,如`SELECT SUM(column) FROM table_name;`。 3. **AVG()**:平均值,如`SELECT AVG(column) FROM table_name;`。 4. **MAX...

    Oracle常用SQL语句复习

    - 示例:`SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id;` 4. **子查询** - 子查询是嵌套在其他查询中的查询,可以用于提供临时的结果集供外部查询使用,如`SELECT * FROM table WHERE ...

    数据库sql语句按时间查询全部详解

    SELECT TOP 20 * FROM table WHERE id IN (SELECT TOP 50 id FROM table ORDER BY id DESC); ``` 5. **使用`ROW_NUMBER()`函数进行分页查询**: ```sql WITH t AS ( SELECT ROW_NUMBER() OVER (ORDER BY cg_id...

    MySql语句整理

    - 函数返回值,如`CREATE FUNCTION get_student_count() RETURNS INT SELECT COUNT(*) FROM students;` 12. 触发器: - 自动执行的SQL代码,如在数据更改时触发,用于实现业务规则或审计 以上只是MySQL语句的...

    SQL Server 的一些面试题

    (SELECT COUNT(*) FROM Table1 AS t1 WHERE result='胜' AND t1.date = t3.date) AS 胜, (SELECT COUNT(*) FROM Table1 AS t2 WHERE result='负' AND t2.date = t3.date) AS 负 FROM Table1 AS t3 GROUP BY date...

    sql server函数大合集

    SELECT COUNT(DISTINCT city) FROM authors SELECT COUNT(*) FROM titles SELECT COUNT(*), AVG(price) FROM titles WHERE advance > $1000 ``` 这三个语句将分别返回 authors 表中 city 列的非空数量、titles 表中...

    sql语句技巧小demo

    FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name; ``` - **应用场景:** 当需要从多个表中获取数据时,且这些表之间存在关联关系。 **2. 左连接 (Left Join):** - **定义:** 左...

    Oracle 开发DBA SQL编写规范

    select * from tab1 where id not in (select id from tab2); -- 正确示例 select * from tab1 t1 where not exists (select 1 from tab2 t2 where t1.id = t2.id); ``` ##### 4.7 少用DISTINCT,用GROUP BY...

    MySQL语法大全_MySQL语法大全_

    - 子查询可以在 `SELECT`, `FROM`, `WHERE` 子句中嵌套,如 `SELECT * FROM employees WHERE id IN (SELECT manager_id FROM departments);` 7. 视图(View): - `CREATE VIEW` 创建虚拟表,如 `CREATE VIEW ...

    MySQL基础.zip

    3. 函数:可以返回值的操作,如内置的`COUNT()`函数。 八、事务处理 1. 事务:一组操作,要么全部执行,要么全部回滚。 2. 开始事务:`START TRANSACTION;` 3. 提交事务:`COMMIT;` 4. 回滚事务:`ROLLBACK;` 九、...

    sql基础练习题

    - 基本查询:了解如何从单个表中选择特定列,如`SELECT column1, column2 FROM table_name;` - 条件查询:使用`WHERE`子句过滤结果,如`WHERE column = value`或`WHERE column > value` - 排序查询:使用`ORDER ...

    SQL初学者入门教程

    SELECT COUNT(*) FROM Employee WHERE Job_Id = '0001' ``` 简单的SELECT语句用于查询数据,如: ```sql SELECT * FROM Employee WHERE fname='Paolo' ``` 还可以使用函数处理数据,例如: ```sql SELECT convert...

    oracle里的常用命令

    4. `GROUP BY`与`HAVING`:分组和条件筛选,如`SELECT department_id, AVG(salary) FROM employees GROUP BY department_id HAVING AVG(salary) > 5000`,查找平均薪资超过5000的部门。 三、数据插入、更新与删除 1...

    Transact-SQL语句

    - **选择所有列**:使用`SELECT * FROM table_name`可以获取表中的所有列。 - **选择部分列**:通过`SELECT column1, column2 FROM table_name`指定需要查询的特定列。 - **更改列标题**:可以使用`AS`关键字重命...

    2009达内SQL学习笔记

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

    达梦数据库建表操作SQL语句大全.pdf

    通过SQL语句 `select count(*) as dida from sysobjects where id = object_id(N'[所有者].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1` 来查询表是否存在,根据返回值判断表是否存在,返回值为1表示存在...

    hive解决问题方案

    SELECT COUNT(*) FROM olap_b_dw_hotelorder_f WHERE create_date_wid NOT REGEXP '\d{8}'; ``` 2. **`REGEXP_EXTRACT`**: - 语法:`REGEXP_EXTRACT(subject, pattern, index)` - 返回值:STRING - 描述:...

    T-SQL 编程基础 程序员查考资料

    - 示例:`SELECT * FROM Students WHERE ID IN (SELECT ID FROM Teachers);` 3. **EXISTS子查询** - 示例:`SELECT * FROM Students WHERE EXISTS (SELECT * FROM Teachers WHERE Students.TeacherID = Teachers....

Global site tag (gtag.js) - Google Analytics