resultset用法 java中Result和ResultSet的区别,各有什么优点?
java中Result和ResultSet的区别,各有什么优点?
二者的区别在于前者对于修改不敏感,而后者对于修改敏感 resultSetConcurency是设置ResultSet对象能够修改的,取值如下: ResultSet.CONCUR_READ_ONLY 设置为只读类型的参数。 ResultSet.CONCUR_UPDATABLE 设置为可修改类型的参数。 以下两种方法的共性:返回可滚动的结果集,当数据库变化时,当前结果集同步改变。 不可用结果集更新数据库: con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY) 可用结果集直接更新数据库:
查询结果是一次性储存在ResultSet对象中吗?
参考如下内容:一般不会一次性全部取到JVM内存中。Statement和ResultSet都定义了get/setFetchSize()来指定,在需要更多结果集时,一次性取多少记录到本地内存。但这只是对底层JDBC驱动的一个提示,具体默认值以及是否有实现此功能视JDBC驱动实现而定。例如mysql的connector/j驱动需要使用useCursorFetch=true才能启用此功能并正常识别fetchSize的值
或resultset在方法里关闭连接会怎么样?要怎么处理?
如果要返回statement 或者resultset 就不能关闭连接,关了的话作为返回值被传出去的statement 或者resultset 被访问到的时候就会抛出异常。连接不关不会被有异常,但程序被多次执行后就有连接被占满,不能取得连接的问题出现。一般需要用到rs的数据,应在取得rs后,把里边的数据从新包装后返回,比如返回集合类或者bean类。在包装完成后关闭rs,state,conn。这样没问题
如何获取ResultSet总行数?
方法一:利用ResultSet的getRow方法来获得ResultSet的总行数Java代码ResultSet rs rs.last() //移到最后一行 int rowCount = rs.getRow() //得到当前行号,也就是记录数 rs.beforeFirst() //如果还要用结果集,就把指针再移到初始化的位置 方法二:利用循环ResultSet的元素来获得ResultSet的总行数Java代码ResultSet rs int rowCount = 0 while(rset.next()) { rowCount } 方法三:利用sql语句中的count函数获得ResultSet的总行数Java代码String sql = "select count(*) record_ from ( select * from yourtable t where t.column_ = "value_" )" ResultSet rs = ps.executeQuery(sql) int rowCount = 0 if(rs.next()) { rowCount=rs.getInt("record_") }
Statement与ResultSet setFetchSize是做什么用的?
Statement与ResultSetsetFetchSize的作用分别如下: setMaxRows():是设置Resultset最多返回的行数。 setFetchSize()设置从数据库取得多行的行数大小。 Statementstmt=conn.createStatement() ResultSetrsset=stmt.executeQuery("SELECT*FROMuserLIMIT30") rsset.setFetchSize(10) while(rsset.next()){ //这里还是30条记录 }
resultset用法 jdbc resultset用法 resultset是什么意思
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。