preparedstatement execute()操作成功!但是返回false


轉自http://blog.sina.com.cn/s/blog_963fb3af01013rcs.html

Connection con = getConn();

String sql2 = "insert into serial_history h "
       + "(serial_no, tran_date, occur_bala, cust_no, status, "
       + " area_code, tran_type, return_code) "
       + "values(?,?,?,?,?,?,?,?)";

PreparedStatement ps2= con.prepareStatement(sql2);

...

ps2.setDouble(3, bd.getTranOccur());
ps2.setString(4, bd.getCustNo().substring(3));

...

boolean b = ps2.execute();//這里數據成功插入了!也沒出異常!但是返回false;

int success = ps2.executeUpdate();//保險期間還是用了這個

經過查看資料發現:下面是API上的,能看懂

boolean execute()
  throws SQLException在此 PreparedStatement 對象中執行 SQL 語句,該語句可以是任何種類的 SQL 語句。一些特別處理過的語句返回多個結果,execute 方法處理這些復雜的語句;executeQuery 和 executeUpdate 處理形式更簡單的語句。 
execute 方法返回一個 boolean 值,以指示第一個結果的形式。必須調用 getResultSet 或 getUpdateCount 方法來檢索結果,並且必須調用 getMoreResults 移動到任何后面的結果。 
返回:
如果第一個結果是 ResultSet 對象,則返回 true;如果第一個結果是更新計數或者沒有結果,則返回 false

意思就是如果是查詢的話返回true,如果是更新或插入的話就返回false了;

execute()返回的是一個boolean值,代表兩種不同的操作啊,getResultSet()返回的是結果集,而getUpdateCount()返回的是更新的記數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM