mysql - 使用 Where 子句从 Mysql 数据库中获取多条记录

标签 mysql jsp jdbc

我正在使用一个 Web 应用程序,它运行在 Apache Tomcat 上并以 Mysql 数据库作为后端

我想使用 Where 子句检索特定列的多行

例如,如果我给出 select * from xyz where type=abc

我应该得到类型为 abc 的所有行。

问题:

我使用 JDBC 连接来实现这一点,但是只返回匹配 where 条件的第一行而不是所有行(即使多行匹配数据库中的条件)

请帮我解决这个问题

代码:

<%@ page import="java.sql.*" %>
<html>
<head><link href="style.css" rel ="stylesheet" type="text/css"></head>

<body bgcolor="white" >

<div id="container">
<div id="header">
    <img src="logo.jpg">

  <div class ="horiztext"><p> Order Tracker</p></div>
  </div>

</div>
  <br>

    <img src="banner.jpg" width="1500 " height="5"><br>
    <% if(session.getAttribute("username") !=null)
{
 %>
     <div id="navbar">
    <ul> 
        <li><a href="newoder.jsp">New Order</a></li> 
        <li><a href="updateorder.jsp">Update Order</a></li> 
        <li><a href="trackorder.jsp">Track Order</a></li> 
        <li><a href="trackdelay.jsp">Track Delay</a></li> 
        <li><a href="vieworder.jsp">View Database</a></li> 
        <li><a href="delete.jsp">Delete Order</a></li> 
        <li><a href="logout.jsp">Logout</a></li>
  </ul> 
  </div>   
  <br>
  <br>

    <form>
    <TABLE cellpadding="15" border="1" style="background-color: #ffffcc;">
    <%
    String ProductNamez=request.getParameter("ProductName");

    Class.forName("com.mysql.jdbc.Driver").newInstance();
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3307
 /test","root", "root");
    Statement st=conn.createStatement();
    ResultSet rs = st.executeQuery("SELECT * FROM inventory WHERE ProductName = '"+
  ProductNamez +"' ");
    if(rs.next()){ 
        %>

<tr>
<tr><th>Serial No</th>
<th>Product Name</th>
<th>Product Type</th>
<th>Model</th>
<th>Make</th>
<th>License / Voucher</th>
<th>Location</th>



</tr> 
<tr>
<td><%=rs.getString(1)%></td>
<td><%=rs.getString(2)%></td>
<td><%=rs.getString(3)%></td>
<td><%=rs.getString(4)%></td>
<td><%=rs.getString(5)%></td>
<td><%=rs.getString(6)%></td>
<td><%=rs.getString(7)%></td>


</tr>
          <%
    }
    %>
    </table>
    </form>
    <%
} 
else { %>
you are not logged in click here to <a href="eric.jsp"><b>login</b></a>

<%
} %> 
</body>
</html>

最佳答案

你会想要的

    while (rs.next()){ 

代替

    if (rs.next()){ 

关于mysql - 使用 Where 子句从 Mysql 数据库中获取多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16480566/

相关文章:

两个日期时间之间的 php MySQL 查询,但如果在范围内完成,则包括范围外的分钟数

php - 单击按钮执行 MySQL 删除

mysql - 无法让 SUM 在 mysql 中工作

mysql - CentOS中的mysql集群

html - 如何在jsp页面文本区域显示tomcat登录(实时)?

stored-procedures - 如何在 jdbc preparedStatement、CallableStatement 或 Spring-jdbc StoredProcedure 中将函数作为参数值传递?

java - Cookie仅在返回页面有效,在其他页面无效

java - 不显示表达式语言的值

java - 如何使用 spring 的 jdbcTemplate 在 SQL 查询中指定参数

java - JDBC,帮助在 Java GUI 中将结果集显示为表格