关于DAO层统计总数的方法

DAO层统计数据库某属性总数的功能是比较常见的,代码如下:

/**
*  获取用户总人数
* @return 返回总人数
*/

public int getUsernumber(){
    Connection conn = null;
    PreparedStatement stmt = null;
    ResultSet rs = null;
    int num = 0;//总人数
    try{
        conn = DBHelper.getConnection();	//首先连接数据库
        String sql = "select count(*) as num from users;"; // SQL语句
        stmt = conn.prepareStatement(sql);	//开始sql查询	
        rs = stmt.executeQuery();	//接收结果
        rs.next();
        num = rs.getInt("num");
        return num;
    } catch (Exception e) {
        e.printStackTrace();
        return 0;
    } finally {
        // 释放数据集对象
        if (rs != null) {
            try {
                rs.close();
                rs = null;
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
        //释放语句对象
        if (stmt != null) {
            try {
                stmt.close();
                stmt = null;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

主要思路:

第一点、sql语句

SELECT COUNT(column_name) as num FROM table_name
把总数统计在num名下,我测试的表中共有三条记录,所以 运行结果为:
num   
3
第二点、用ResultSet的getInt方法获取num下的数字,关于在num = rs.getInt("num");的前面为什么要有一个 rs.next()?
    rs.next返回一个布尔类型, rs相当于一个游标,它指向你取出所有的数据里第一条数据 之前,所以 要取第一条数据(num)就得用rs.next()。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值