execute返回值的问题

来源:互联网 发布:剑三男神纣炀捏脸数据 编辑:程序博客网 时间:2024/05/03 11:15

该方法的返回值:
true if the first result is a ResultSet object; false if it is an update count or there are no results

所谓“the first result”,意思就是说这个操作实际上会有多个结果。怎么得到这多个结果呢?调用 getResultSet() 或者 getUpdateCount() 方法获得当前(第1个)结果,然后调用 getMoreResults() 方法移至下一个结果,这样循环。select 方法总是返回一个ResultSet,包含选中的表记录;update、delete、insert方法总是返回一个Update Count,包含受到该命令影响的行数(比如如果是 delete 命令则表示该命令的执行使得多少行被删除)。至于 create table 命令,即使执行成功,既不存在什么返回结果集,也不存在影响哪一行记录,所以根据文档定义,只能返回 false。

if(!rs.next()){sql = "insert into users(username,password) values('"+username+"','"+password1+"')";//st.execute(sql);int res = st.executeUpdate(sql);if(1 == res){flag = true;}}


如果采用execute方法的话,返回的是布尔值,并且因为返回结果集,所以就返回false了,虽说数据库还是正常写入了的。