开发的朋友,在操作数据库的时候,相信绝大部分人都用过它。但它不仅仅就是一个结果集的纯载体,仅仅只有存储的功能。下面就简略说一下它的功能。
结果集大体上可以分为四类,它们各有特点,基本上都和Statement语句的创建方式有关。
1、基本型(最基本,用得最广泛)
创建方式:无参数创建型
Statement st = conn.CreateStatement
ResultSet rs = Statement.excuteQuery(sqlStr);
特点:这种最简单,没有特别的功能(不支持滚动、更新等等),只能用next()逐个单方向去读取数据。
2、滚动型
创建方式:参数创建型
Statement st = conn.createStatement(int resultSetType, int resultSetConcurrency)
ResultSet rs = st.executeQuery(sqlStr)
参数:
resultSetType是设置ResultSet对象的类型可滚动
resultSetConcurency是设置ResultSet对象能够修改的
具体的参数值见ResultSet.
特点:(和具体参数的设置有关。)这种类型支持滚动获取记录,可以向前向后操作,类似于分页功能的操作方式。如支持:next()、previous()、first()、absolute(int n)等等。
3、更新型
创建方式:(和2一样,不过参数选取不同)
Statement st = createstatement(Result.TYPE_SCROLL_INSENSITIVE,Result.CONCUR_UPDATABLE)
特点:可以完成对数据库的更新操作。更新的方法是,把ResultSet的游标移动到你要更新的行,然后调用updateXXX(),再用updateRow()完成对数据库的写入。
限制/要求:(1)对单表操作。(2)不包含join或者group by子句。
4、保持型
创建方式:
Statement st=createStatement(int resultsetscrollable,int resultsetupdateable,int resultsetSetHoldability)
ResultSet rs = st.excuteQuery(sqlStr);
参数:只介绍第三个resultsetSetHoldability,表示在结果集提交后结果集是否打开,其值为
ResultSet.HOLD_CURSORS_OVER_COMMIT:表示修改提交时,不关闭数据库。
ResultSet.CLOSE_CURSORS_AT_COMMIT:表示修改提交时ResultSet关闭
特点:一般情况下,在使用Statement执行完一个查询,又去执行另一个查询的时候,第一个查询的结果集就会被关闭。该方式可以自由设定是否关闭结果集。
限制/要求:(1)只是在JDBC3.0的驱动下才能成立。