本人是个java的新手也是刚在学习数据库编程,在网上看了好多大虾们的帖子和看书后,对resultset类一贯简单的总结,希望大家指点错误的地方,我补全不足的地方,写之以便以后的学习和帮助象我一样的小虾,谢谢大家的支持。
用缺省设置创建时,ResultSet 是一种只能访问一次(one-time- through)、只能向前访问(forward-only)和只读的对象。您只能访问数据一次,如果再次需要该数据,必须重新查询数据库。
通用格式为:Statement stmt=con.createStatement(int type,concurrency);我们在访问数据库的时候,在读取返回结果的时候,可能要前后移动指针,比如我们先计算有多少条信息,这是我们就需要把指针移到最后来计算,然后再把指针移到最前面,逐条读取,有时我们只需要逐条读取就可以了。还有就是有只我们只需要读取数据,为了不破坏数据,我们可采用只读模式,有时我们需要望数据库里添加记录,这是我们就要采用可更新数据库的模式。下面我们就对其参数进行说明:
第一个参数type指定 ResultSet 的类型。其选项有:
TYPE_FORWARD_ONLY:缺省类型。只允许向前访问一次,结果集的游标向下滚动,并且不对该数据库作更改。
TYPE_SCROLL_INSENSITIVE:允许在列表中向上或向下移动,当数据库变化时,当前结果集不变(INSENSITIVE是迟钝的意思)。
TYPE_SCROLL_SENSITIVE:允许在列表中向上或向下移动,当数据库变化时,当前结果集变化(SENSITIVE是敏感的意思)。
第二个参数concurrency设置,数据库是否可以与滚动集同步更新:
CONCUR_READ_ONLY:缺省类型。不能用 ResultSet结果集更新数据库中的表。
CONCUR_UPDATABLE:能用结果集 ResultSet更新数据库中的表。
例子:
Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL,ResultSet.CONUR_READ_ONLY);
//用连接connection,创建Statement对象stmt,指定结果集可以滚动,并且以只读方式读取数据库。