PreparedStatement的excute返回值的让我疑惑
? 今天用jdbc写了一句sql语句,通过PreparedStatement对象来插入记录,发现一个奇怪的问题,我明明是成功插入记录,可是pstmt.execute()确返回的是false,狂晕中。
String sqlText = "insert into problem(title, " +
"description, input, output, sample_input, " +
"sample_output, hint, source, uploader) " +
"values(?, ?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement pstmt = null;
......
res = pstmt.execute();
?
??? 呵呵,感到比较困惑
。查看sun的API后恍然大悟。
sun API 写道
public boolean execute()
throws SQLExceptionExecutes the SQL statement in this PreparedStatement object, which may be any kind of SQL statement. Some prepared statements return multiple results; the execute method handles these complex statements as well as the simpler form of statements handled by the methods executeQuery and executeUpdate.
The execute method returns a boolean to indicate the form of the first result. You must call either the method getResultSet or getUpdateCount to retrieve the result; you must call getMoreResults to move to any subsequent result(s).
Returns:
true if the first result is a ResultSet object; false if the first result is an update count or there is no result
Throws:
SQLException - if a database access error occurs or an argument is supplied to this method
???? 再次发现一个小问题,我将如何判断这条记录是否插入成功呢?我选择了不用execut方法,而改用executeUpdate方法。
if(pstmt.executeUpdate() == 1)
return true;
else
return false;
???? executeUpdate()返回数据库中更新记录的条数。那哪位大侠出来说一下execute该在什么情况下使用哇?