在mysql中从resultset获取行数?

s3fp2yjn  于 2021-06-25  发布在  Mysql
关注(0)|答案(3)|浏览(394)

我有一个表单,它通过jdbc连接到我的数据库,我创建了一个方法,我打算将表中的行数打印出来,如下所示:

public static void getRowCount(String sql, PrintWriter printThis)
{
   try
   {
       Connection c = // Another function called from a different class that handles the connection
       PreparedStatement p = (PreparedStatement) connect.prepareStatement(sql);
       ResultSet r = p.executeQuery();

       while (r.next())
       {
           printThis.println(r.toString());
       }
        c.close();
   }

   catch (Exception e)
   {
        e.printStackTrace();
   }
}

如果我传递一个sql字符串 "Select COUNT(*) FROM MyTable;" 作为参数,它应该打印出表的行数。例如,如果我当前在mytable中有4行,它应该打印出来 4 但打印出来的只是一个随机数字和字母的物体:

com.mysql.jdbc.JDBC42ResultSet@7e11fc40

如何在将sql查询的结果传递给函数后显示它?

mwecs4sa

mwecs4sa1#

你得换成这条线 printThis.println(r.toString()); 加上这个 printThis.println(r.getInt(1)); 或者 System.out.println(r.getInt(1));

bvjveswy

bvjveswy2#

r.getInt("totalCount");

将查询更改为 "Select COUNT(*) as totalCount FROM MyTable;" 如果你想用 printThis ,通过 r 作为函数中的参数,并使用 getInt 方法。

i7uaboj4

i7uaboj43#

因为resultset只包含一列,所以可以简单地使用列索引号1。 r.getInt(1);

相关问题