转自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()返回的是更新的记数