我正在编写一个Java程序,只要找到在另一个数据库中具有相同产品型号的记录,就可以使用新的详细信息更新本地数据库中的现有数据。如果没有找到记录,则会插入新记录。
我正在使用if-else语句来检查记录是否存在。当前代码仅适用于单个记录。只要本地数据库和其他数据库中的产品模型存在,我希望它继续更新本地数据库。
以下是我正在使用的代码:
public static void checkExist() {
try {
Statement stmt = conn.createStatement();
int prod_qnty, prod_weight;
float prod_price;
String prod_model = "97801433"; //testing purposes
ResultSet rs = stmt.executeQuery("SELECT * from products where products_model = " + prod_model );
if (rs.next()){
//while (rs.next()) {
prod_qnty = rs.getInt("products_quantity");
prod_price = rs.getFloat("products_price");
prod_weight = rs.getInt("products_weight");
System.out.println(prod_qnty + "\t" + prod_price + "\t" + prod_weight);
updDB(prod_model, prod_qnty, prod_price, prod_weight);
//}
}
else{
insertDB(prod_model, prod_qnty, prod_price, prod_weight);
}
stmt.close();
} catch (SQLException ex) {
//Logger.getLogger(Check.class.getName()).log(Level.SEVERE, null, ex);
}
}
我在if语句中添加了一个while循环,但是,在我添加了while循环之后。现在它甚至无法打印出任何记录。似乎一旦进入if(rs.next())条件,它就不会进入while循环。
有人会让我知道我做错了什么吗?是否可以在if-else语句中使用while循环?通常情况下,它使用相反的方式,while循环中的if-else语句。
任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
您不必添加单独的if语句while (rs.next()) { //CODE }
如果你调用next()2次,光标将向前移动2条记录,如果你只有一条查询记录,它将不会进入while循环。
只有在剩余结果的情况下才会执行CODE。