获取数据库表的记录数
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;
不想学好基础的程序员不是好的程序员。