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

posted on 2017-01-05 16:29  Total_MHP  阅读(14311)  评论(1编辑  收藏  举报