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 |
rs.next返回一个布尔类型,
rs相当于一个游标,它指向你取出所有的数据里第一条数据 之前,所以
要取第一条数据(num)就得用rs.next()。