我在Tomcat上运行以下代码并且循环不起作用。每次我试图检查名为“enero”的表中的新数据时,都没有正确遵循条件,只有第一个操作完成...以表格中输入的重复记录结束。
你能帮忙吗?
<%-- <jsp:getProperty name="beanInstanceName" property="propertyName"/> --%>
<%@page import="java.sql.*"%>
<%
String REF=request.getParameter("d_ref");
String DATE=request.getParameter("i_date");
String UBC=request.getParameter("i_ubc");
%>
<%
try
{
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//Connection connection=DriverManager.getConnection("jdbc:odbc:db1","","");
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection("jdbc:mysql://localhost/labacacias?user=root&password=letmein");
Statement statement=connection.createStatement();
String query;
query="SELECT * FROM enero";
boolean b=false;
ResultSet resultSet=statement.executeQuery(query);
while (resultSet.next())
{
if (REF.equals(resultSet.getString(1)) && DATE.equals(resultSet.getString(2)) && UBC.equals(resultSet.getString(3)))
{
out.println("Datos ya han sido adjuntados anteriormente!");
out.println("<a href=\"EneroU.jsp\">Click Aqui para Adjuntar nuevos Resultados</a>");
break;
}
if (!REF.equals(resultSet.getString(1)) && !DATE.equals(resultSet.getString(2)) && !UBC.equals(resultSet.getString(3)))
{
pageContext.forward("InsertE.jsp");
break;
}
}
}
catch (Exception e)
{
//e.printStackTrace();
out.println(e.toString());
}
%>
</body>
答案 0 :(得分:0)
检查您是否有病情。有很多&amp;&amp;在它。
如果第一个操作每次完成,结果集和参数中的字符串可能都满足if条件。
答案 1 :(得分:0)
我不确定这是正确的做法。您似乎正在从表中选择所有行,并将它们一次比较为作为请求参数的详细信息。如果它们都匹配,则表示数据已存在,否则如果传入的值与您不匹配,则转发到其他页面。除非你的表中只有一行,否则你会得到奇怪的结果。
更有意义的是从你的表中选择col1 = REF和col2 = DATE和col3 = UBC。如果rs.next()== false,pageContext.forward(),则out.println(“Datos ya han sido adjuntados anteriormente!”)