Java 从SQL返回表的所有值,下拉列表作为前端,并在后端使用where子句和prepared语句

Java 从SQL返回表的所有值,下拉列表作为前端,并在后端使用where子句和prepared语句,java,sql,Java,Sql,因此,我有一个前端,让用户可以选择在SQL列中找到的值,或者不选择任何内容。我有一段代码,它接受这个值并使用准备好的语句查询SQL。如果用户选择空白,我不知道如何返回所有值 我的下拉列表前端代码如下: <form name="subinventory" action="subinventory.jsp" method="POST"> <select name="productname"> <option>-1</option> &l

因此,我有一个前端,让用户可以选择在SQL列中找到的值,或者不选择任何内容。我有一段代码,它接受这个值并使用准备好的语句查询SQL。如果用户选择空白,我不知道如何返回所有值

我的下拉列表前端代码如下:

<form name="subinventory" action="subinventory.jsp" method="POST">
<select name="productname">
    <option>-1</option>
    <option>A</option>
    <option>B</option>
    <option>C</option>
    <option>D</option>
    <option>X</option> 
</select>
     <b> Product Category </b>
<select name="productcategory">
    <option>IGNORE</option>
    <option>A</option>
    <option>B</option>
    <option>C</option>
    <option>D</option>
    <option>X</option> 
</select>
      <b> Product Use </b>
<select name="productuse">
    <option>IGNORE</option>
    <option>A</option>
    <option>B</option>
    <option>C</option>
    <option>D</option>
    <option>X</option> 
</select>
    <input type="submit" value="submit" />
</form>

我从你的问题中了解到的是

您希望基于多个条件检索数据

String query = "select * from Database WHERE Approved ='Approved'";
if(null != productname && !"".equals(productname)) {
      query += " AND Product = '"  +productname+"'";
}
if(null != productuse && !"".equals(productuse)) {
      query += " AND USES = '"  +productuse+"'";
}
对于这种情况,您可以构造基本查询,然后根据条件添加适当的参数

String query = "select * from Database WHERE Approved ='Approved'";
if(null != productname && !"".equals(productname)) {
      query += " AND Product = '"  +productname+"'";
}
if(null != productuse && !"".equals(productuse)) {
      query += " AND USES = '"  +productuse+"'";
}
就像这样

顺便说一下,你用的是。不

使用like代替=
从Approved='Approved'和Product LIKE%'“+productname+(““”)+”和USES LIKE%'“+productuse+(“””)的数据库中选择*只需执行另一个选择并删除约束,否?这是正确的。谢谢。我将检查它是否有效,如果有效,则将您的答案标记为正确。