关于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()。

猜你喜欢

转载自blog.csdn.net/qq_42365082/article/details/80914358
今日推荐