【问题标题】:How to print all values from sql table instead of just first row如何打印sql表中的所有值而不仅仅是第一行
【发布时间】:2016-11-04 15:02:13
【问题描述】:

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

 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>");

【问题讨论】:

  • 显示更多代码。你展示的那块连语句都没有执行,rs 凭空出现。
  • 抱歉,会更新

标签: java html mysql sql


【解决方案1】:

迭代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>");
}

【讨论】:

    【解决方案2】:

    在您的情况下,Resultset 有 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>");
    
    }
    

    【讨论】:

    • 非常感谢!我会接受 yash 的回答,因为他先回答,对不起!我不能同时接受,但我真的很感谢你的帮助。
    猜你喜欢
    • 2022-10-06
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-24
    • 2013-02-15
    • 1970-01-01
    相关资源
    最近更新 更多