我想将发送的数据与数据库中的所有数据进行比较。此coce仅将插入的日期与最后一行进行比较。如何与数据库中的所有行进行比较。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
String sData= request.getParameter("idatadata");
String sAzienda= request.getParameter("idazienda");
String sCommessa= request.getParameter("idcommessa");
String date = "";
String company = "";
String order = "";
Connect con = new Connect();
try {
Connection connection = con.createConnection();
Statement statement = connection.createStatement();
String sql ="SELECT * FROM table";
ResultSet resultSet = statement.executeQuery(sql);
while(resultSet.next()) {
date = resultSet.getString("iddata");
company = resultSet.getString("idazienda");
order = resultSet.getString("idcommessa");
}
if((sData.equals(date) && sAzienda.equals(company)) && sCommessa.equals(order)) {
out.print("already sent");
con.closeConnection(connection);
}
else {
DbConnect.insertInDb(connection, sData, sOre, sMinuti, sAzienda, sCommessa, sRifInterno);
dbc.closeConnection(connection);
response.getWriter().append("ok! ");
}
} catch (Exception e) {
e.printStackTrace();
}
}
1条答案
按热度按时间dfuffjeb1#
之所以只检查最后一行,是因为每次检索行时while循环都会覆盖局部变量:
但实际上,在从db转到下一行之前,不会检查循环中的本地变量。您应该将支票添加到循环中:
最好是根据您要查找的数据执行选择。如果没有结果,则数据不在数据库中。这种方法更有效。如果您决定走这条路(这是一个好主意),请使用准备好的语句,这样就不会在代码中引入sql注入漏洞。