如何打印 sql table 中的所有值,而不仅仅是第一行

How to print all values from sql table instead of just first row

我有一个名为 "payroll_items" 的 sql table,其中包含三行数据,如您所见。您还可以在下面查看我的代码,它是一个 java servlet,它从数据库中检索数据并以 table 格式显示。但是,正如您在 table 格式中看到的那样,它仅显示 sql table(SA、养老金等)的第一行,而不显示其他两行(ST 和 WA)。如何以 table 格式显示所有值?它只显示第一行。

 Class.forName("com.mysql.jdbc.Driver").newInstance(); 
                 Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/payroll_system", "root", ""); 
                 PreparedStatement ps = con.prepareStatement("select ItemCode, ItemName, ItemDescription, Rate from payroll_system.payroll_items");
                 ResultSet rs = ps.executeQuery(); 
                 st = rs.next(); 
                 if(st) { 

                         out.println("<tr>");
                         out.println("<td><h3>Item Code</h3></td>");
                         out.println("<td><h3>Item Name</td></h3>");
                         out.println("<td><h3>Item Description</h3></td>");
                         out.println("<td><h3>Rate</h3></td>");
                         out.println("</tr>");

                         out.println("<tr>");
                         out.println("<td>"+ rs.getString("ItemCode")+"</td>");
                         out.println("<td>"+ rs.getString("ItemName")+"</td>");
                         out.println("<td>"+ rs.getString("ItemDescription")+"</td>");
                         out.println("<td>"+ rs.getString("Rate")+"</td>");
                         out.println("</tr>");

迭代ResultSet。您忘记在 ResultSet

中添加查询
ResultSet rs = ps.executeQuery("select ItemCode, ItemName, ItemDescription, Rate from payroll_system.payroll_items"); 
while (rs.next()) {
                 out.println("<tr>");
                 out.println("<td>"+ rs.getString("ItemCode")+"</td>");
                 out.println("<td>"+ rs.getString("ItemName")+"</td>");
                 out.println("<td>"+ rs.getString("ItemDescription")+"</td>");
                 out.println("<td>"+ rs.getString("Rate")+"</td>");
                 out.println("</tr>");
}

在您的情况下,结果集有 3 个索引,您应该使用

打印所有索引
while (rs.next()) {

out.println("<td>"+ rs.getString("ItemCode")+"</td>");
out.println("<td>"+ rs.getString("ItemName")+"</td>");
out.println("<td>"+ rs.getString("ItemDescription")+"</td>");
out.println("<td>"+ rs.getString("Rate")+"</td>");

}