单独这样写就没有问题:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); //连接数据库 sqlCon= java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jsp","sa","sa"); //创建语句对象 sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); //执行SQL语句strSQL = "select * from content"; //执行SQL语句并获取结果集 sqlRst = sqlStmt.executeQuery(strSQL);//获取记录总数 sqlRst.last();intRowCount = sqlRst.getRow(); //记算总页数
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); //连接数据库 sqlCon= java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jsp","sa","sa"); //创建语句对象 sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); //执行SQL语句strSQL = "select * from content"; //执行SQL语句并获取结果集 sqlRst = sqlStmt.executeQuery(strSQL);//获取记录总数 sqlRst.last();intRowCount = sqlRst.getRow(); //记算总页数
DatabaseDAO dao=new DatabaseDAO();
ResultSet rs=null;
rs=dao.QuerySting(sql); rs.last();//这里出现了问题,[Microsoft][SQLServer 2000 Driver for JDBC]Unsupported method: ResultSet.last
intRowCount = rs.getRow();
出现问题了,说是SQLServer 2000Driver不支持,我都觉得很郁闷
if(rs.next())
{
rs.last();
intRowCount=rs.getRow();
rs.beforeFirst();
}
然后用out.println(intRowCount);就说这个variable intRowCount might not have been initialized
不初始化,真郁闷。。
rs=dao.QuerySting(sql);
dao的查询方法内部应该已经关闭了statement和connection对象了
rs对象是在statement关闭后自动关闭的,你对一个已经失效的rs用last()方法当然就要出错了对你目前的情况来说最简单的方法就是自己创建一个类,用来保存响应的结果集,包括一个Collection存放rs的结果集,若干int值存放行数,页数之类的东西,在dao内部statement有效期完成rs和自定义类的转换
在你的jsp页调用自定义的类来实现分页显示