先用rs.next判断一下。没有数据时应该不会出现这个问题,不知道你用的是什么JDBC
解决方案 »
- 前台页面迭代出input的id值都一样,js取不到第二条以后的值,求解答
- 用 Jquery 跳转到 Servlet 后台
- SSH框架,如果用的话,自己还需要写什么东西来扩充或整合吗?
- 如何实现增、删、改、查等功能共用一个Servlet控制?
- 刚接触JAVA与JSP!各位大哥帮我解释解释(对一些常识性的问题搞晕了!是不是你们男人的智商都比女人高呀???)
- [源码]当当网全套源码(附带邮箱验证功能)
- 关于JSP页面在IE中的显示问题
- 请教高手:如何获得当前js文件的绝对路径信息?(
- Applet连接数据库的问题
- 框架中有frame1,frame2如何不同过联接,利用程序自动指定在fram1中刷新
- 谁知道类似于my.sina.com.cn和cn.my.yahoo.com中的版面个性化定制的原理是什么?
- 请问在SUN的J2EE上面如何联接SQL SERVER进行EJB开发
你的第二个问题,我也遇到了.不过我是这样得到记录条数的,int i=0;
while(rs.next()&& i++)
{
i=i+1
}
if(rs.next())//不为空
{
rs.last();
}
else
{
error code
}
我碰到取行数时都用int i=0;
while(rs.next())
{
i=i+1;
}
然后i里就是所有的行数
哈哈,是笨了些,但没其它办法,只要一用rs.last() rs.getRow()
马上报错!
使用JDBC2.0中的:
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
public class ScrollableResultSet
{
public static void main(String args[])
{
String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
//sDBDriver="org.gjt.mm.mysql.Driver";
//sDBDriver = "com.inet.tds.TdsDriver";
String sConnStr = "jdbc:odbc:jbbs";
//sConnStr="jdbc:inetdae:wcsz?sql7=true";
try
{
Class.forName(sDBDriver); }
catch(java.lang.ClassNotFoundException ae)
{
System.err.println("ae:"+ae.getMessage());
}
// sConnStr="jdbc:mysql://wcsz/forums?user=walksing&[email protected]&useUnicode=true&characterEncoding=gb2312";
Connection con =null;
Statement stmt;
try
{ con = DriverManager.getConnection(sConnStr);
//Statement stmt = con.createStatement();
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
//stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql ="select * from [board]";
//sql ="select * from addressbook";
ResultSet srs = stmt.executeQuery(sql);
srs.absolute(1);
srs.relative(10);
System.out.println("after last?" +srs.isAfterLast());
int rowNum;
if(!srs.isAfterLast())
{
String name=srs.getString("boardname");
System.out.println(name+" "+"boardname");
}
//srs.afterLast();
while(srs.previous())
{
System.out.print("after last?" +srs.isAfterLast());
rowNum =srs.getRow();
System.out.print(rowNum);
System.out.print("rowNum");
String name=srs.getString("boardname");
System.out.println(name+" "+"boardname");
}
System.out.print("after last?" +srs.isAfterLast());
rowNum =srs.getRow();
System.out.println(rowNum);
srs.close();
stmt.close();
con.close();
}catch(BatchUpdateException b)
{
System.err.println("---BatchUpdateException---");
System.err.println("SQLState: "+b.getSQLState());
System.err.println("Message: "+b.getMessage());
System.err.println("Vendor: "+b.getErrorCode());
System.err.println("Update counts: ");
int[] updateCounts = b.getUpdateCounts();
for (int i=0;i<updateCounts.length;i++)
{
System.err.print(updateCounts[i]+" ");
}
System.out.println("");
}catch(SQLException ex)
{
System.err.println("----SQLException-------");
System.err.println("SQLState: "+ex.getSQLState());
System.err.println("Message: "+ex.getMessage());
System.err.println("Vendor: "+ex.getErrorCode());
}
}
}
{
System.err.println("---BatchUpdateException---");
System.err.println("SQLState: "+b.getSQLState());
System.err.println("Message: "+b.getMessage());
System.err.println("Vendor: "+b.getErrorCode());
System.err.println("Update counts: ");
int[] updateCounts = b.getUpdateCounts();
for (int i=0;i<updateCounts.length;i++)
{
System.err.print(updateCounts[i]+" ");
}
System.out.println("");