如果我想在我的数据库中选择东西,我可以在ResultSet中执行execute并返回它以查看我得到的内容。但是,如果要插入或更新行,如何进行检查? 如何查看数据库返回的内容?如果它影响了什么?
public static boolean doUpdate(String statement) {
openConnection();
try {
stmt = conn.createStatement();
stmt.executeUpdate(statement);
closeConnection();
return true;
} catch (SQLException ex) {
System.out.println(DBhandler.class.getName()+"\n"+ex);
closeConnection();
}
return false;
}
我试图给函数一个布尔返回值,但无论更新/插入是否有效,try中的代码都将继续。
答案 0 :(得分:3)
executeUpdate
method返回已执行的相应SQL语句的受影响行数。
返回:
(1)SQL数据操作语言(DML)语句的行数或(2)0表示不返回任何内容的SQL语句
int rows = executeUpdate(statement);
然后,您可以查看rows
以查看它是否为0
,并正确返回boolean
。
答案 1 :(得分:2)
executeUpdate
命令返回受影响的行数。保留该数字,如果至少有一行受到影响,则返回true。此外,您应该在finally块中关闭连接,因此即使发生异常,也会执行closeConnection()
。看看下面的代码。
public static boolean doUpdate(String statement) {
boolean result = false;
openConnection();
try {
stmt = conn.createStatement();
result = stmt.executeUpdate(statement) > 0;
} catch (SQLException ex) {
System.out.println(DBhandler.class.getName()+"\n"+ex);
} finally {
closeConnection();
}
return result;
}