ResultSet的类型如下
1. 在滚动方面
1.1 只能向前滚动
创建方式
用API
connection.createStatement()
connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, xx)
connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, xx, xx)
创建Statement,然后用他们执行查询返回ResultSet。
相关API
next()
1.2 可滚动的ResultSet
创建方式
用API
conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE/Result.TYPE_SCROLL_SENSITIVE, xx)
conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE/Result.TYPE_SCROLL_SENSITIVE, xx, xx)
创建Statement,然后用他们执行查询返回ResultSet。
相关API
next()
previous()
first() //回到第一行
absolute(int n)
relative(int n) //移动到相对当前行的第几行
2. 在可修改方面
2.1 只读ResultSet
创建方式
用API
connection.createStatement()
connection.createStatement(xx, ResultSet.CONCUR_READ_ONLY)
connection.createStatement(xx, ResultSet.CONCUR_READ_ONLY, xx)
创建Statement,然后用他们执行查询返回ResultSet。
2.2 可更新ResultSet
创建方式
用API
connection.createStatement(xx, ResultSet.CONCUR_UPDATABLE)
connection.createStatement(xx, ResultSet.CONCUR_UPDATABLE, xx)
创建Statement,然后用他们执行查询返回ResultSet。
相关API
updateXXX(int,XXX) //更新当前行的列值
updateRow() /* Updates the underlying database with the new contents of the
* current row of this <code>ResultSet</code> object.
* This method cannot be called when the cursor is on the insert row.
*/
moveToInsertRow() //移动游标到插入行
moveToCurrentRow() //移动游标到记忆中的某个行
insertRow() /* Inserts the contents of the insert row into this
* ResultSet object and into the database.
* The cursor must be on the insert row when this method is called.
*/
要完成对数据库的插入,只能如下操作:
首先调用moveToInsertRow()移动到插入行,然后调用updateXXX的方法完成对各列数据的更新。
完成更新后,游标离开插入列之前,调用insertRow()写到数据库
注意:
ResultSet只是相当于数据库中表的视图,所以并不是ResultSet只要设置了可更新就能够完成对DB更新的,能够完成更新的ResultSet的SQL语句必须要具备如下的属性:
a、只引用了单个表。
b、不含有join或者group by子句。
c、那些列中要包含主关键字。
3. 在可保持方面
3.1 不可保持ResultSet
创建方式:
用API
connection.createStatement()
connection.createStatement(xx, xx)
connection.createStatement(xx, xx, ResultSet.CLOSE_CURSORS_AT_COMMIT)
创建Statement,然后用他们执行查询返回ResultSet。
注意: 当Statement 对象关闭、重新执行查询、调用Connection的commit()、从多结果集的序列中获取下一个结果集时,当前ResultSet 对象将自动关闭。
对于这样的Statement,他所有的查询对应一个结果集。
3.2 可保持ResultSet
创建方式:
用API
connection.createStatement(xx, xx, ResultSet.HOLD_CURSORS_OVER_COMMIT) //调用connection的commit()方法后,当前结果集不关闭
创建Statement,然后用他们执行查询返回ResultSet。
JDBC ResultSet
最新推荐文章于 2024-11-05 14:22:47 发布