获取数据库表的记录数

jdbc中sql语句的执行方式有两种:

PreparedStatement ps = null;
String sql = "update users set userName=?,password=? where userId=?";
ps = conn.prepareStatement(sql);
//赋值。。。
int index = pst.executeUpdate();//执行 增 删 改
PreparedStatement ps = null;
String sql = "select * from users where userId=?";
ps = conn.prepareStatement(sql);
//赋值。。。
ResultSet rs = ps.executeQuery();//执行 查

获取数据库的记录数的sql语句,返回值是int类型,但是它并不能用 executeUpdate() 来执行,它属于查询语句,应该用 executeQuery() 执行。

那么,如何获取到记录数呢?

String sql="select count(*) from users";

有以下三种方法:

1、第一种,也是最容易想到的,声明一个局部变量,通过遍历返回结果集ResultSet来获取,代码如下:

PreparedStatement ps = null;
String sql = "select * from users";
ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
int count=0;//总的记录数
while (rs.next()) {
    count++;
}
return count;

2、第二种,利用ResultSet的成员函数来获取,代码如下:

PreparedStatement ps = null;
String sql = "select * from users";
ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
rs.last();//移动到ResultSet的最后一行
int count = rs.getRow(); //获得当前行号,也就是记录数
return count;

3、第三种,就是用我们最初的sql语句来获取, String sql="select count(*) from users";

PreparedStatement ps = null;
String sql = "select count(*) from users";
ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
int count=0;
if(rs.next()){
    count=rs.getInt(1);//ResultSet结果集中的第一个参数就是记录数,其实结果集中只有一个参数
}
return count;

 

posted @ 2017-08-14 21:18  bwlu---ed  阅读(2813)  评论(0编辑  收藏  举报