如果执行一条sql语句select * from table where...的话 可以返回一个ResultSet结果集对象。假如我这张表里的符合条件的数据有100W,结果集里不可能存100W行数据吧,它应该有个默认限制,而且可以通过setFetchSize()来设置这个限制。现在我有一个问题,比如所限制是100条数据。当我想用第101条数据时怎么办?
解决方案 »
- 字符串截取?
- java.lang.reflect.InvocationTargetException错误
- Struts2+Ajax出现了很郁闷的错误!
- jsp从数据库中读取时间的问题!!
- .如何实现网站访问数量的统计?
- 需求分析怎么写?
- tomcat下如何配置多个数据源
- getHibernateTemplate()==null????什么问题啊!!!
- 武汉:寻求工作与实习机会(JSP,SERVLET,JAVABEAN,STRUTS)。来就有分!
- 查重源码
- char c; System.out.println("char [" + a.c + "]"); 为什么输出char [□]
- 急用,关于JdbcTemplate的使用
好像楼主对setFetchSize的理解有点问题。如果 setFetchSize(100), 而实际有200条数据,那只是意味着Java程序要到数据库 Fetch 两次而已。ResultSet 里还是会有200条数据。
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");
// rs will be scrollable, will not show changes made by others,
// and will be updatable
2.更新当前行中的列值。在可滚动的 ResultSet 对象中,可以向前和向后移动指针,将其置于
绝对位置或相对于当前行的位置。以下代码片段更新 ResultSet 对象 rs 的第五行中的 NAME 列,
然后使用方法 updateRow 更新用于派生 rs 的数据源表。
rs.absolute(5); // moves the cursor to the fifth row of rs
rs.updateString("NAME", "AINSWORTH"); // updates the
// NAME column of row 5 to be AINSWORTH
rs.updateRow(); // updates the row in the data source
3.综合运用:
Statement stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");
while(rs.next())
{
rs.moveToCurrentRow();//如果不加此句,常发生update failed 错误
rs.updateString(1,"new");//将字段a的所有记录更新为'new'
rs.updateRow();
} 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/whxiaolezi/archive/2007/09/27/1803761.aspx