从数据库中检索数据并将新数据写入mysql

时间:2011-04-13 13:53:43

标签: java mysql jsp

我在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>

2 个答案:

答案 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!”)