JDK1.3,tomcat下,我使用rs.first();rs.last();为什么老报错呀? 看你连接数据库的方式是什么如果是jdbc:odbc就会出错 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 jsp中的记录集是单向的,不能rs.first()我以前也遇到过这种问题,问了很多人,都没办法,最后只好rs.close()然后在连接一次数据库.如果你不想多次创建数据库连接,你就一次把所有的你需要的数据读出来,然后慢慢折腾. Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);如果直接createStatement(),得到的Result是TYPE_FORWARD_ONLY的,不能first, last kkhui(jacky) 回答非常正确 那么这个class应该怎么改呢?package bbs;import java.sql.*;public class conn{String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";String sConnStr = "jdbc:odbc:bbs";Connection conn = null;ResultSet rs = null;public conn(){try {Class.forName(sDBDriver); }catch(java.lang.ClassNotFoundException e) {System.err.println("bbsreg(): " + e.getMessage());}}public ResultSet executeQuery(String sql) {rs = null;try {conn = DriverManager.getConnection(sConnStr); Statement stmt = conn.createStatement();rs = stmt.executeQuery(sql);} catch(SQLException ex) { System.err.println("aq.executeQuery: " + ex.getMessage());System.err.println("aq.executeQuerystrSQL: " + sql);}return rs;}public void executeUpdate(String sql) {try {conn = DriverManager.getConnection(sConnStr); Statement stmt = conn.createStatement();stmt.executeUpdate(sql);} catch(SQLException ex) { System.err.println("aq.executeUpdate: " + ex.getMessage());System.err.println("aq.executeUpadatestrSQL: " + sql);}}} 如果你用的是jdbc-odbc桥有时是不行的,因为他不完全支持jdbc2.0 用jdbc-odbc桥可以用这种方法的你的问题应该是出现在你创建ResultSet时是指定的类型问题Statement stmt = conn.createStatement();这样建立不行,应该指定可以滚到,看一下参数 会不会是因为RS中没有记录?这时调用rs.first或rs.last就会出错。 在html浏览器中显示不了Applet程序,急!!! jsp页面无法加载cab包的问题(急、急、急) Css样式遇到个小问题 jsp tomcat web定时任务(Timer)问题,难呀 这句中的aa.jsp 想用变量代替如何改? 想探究的进来看看(使用正则时不能退出循环 在find()处阻塞了) 关于DTD文件 请问这样为什么还会提交? 学习java然后jsp,目的是做网页! 我读数据库的时候英文中文都能显示,但写的时候英文中文都是乱码?这是为什码? jsp问题 急急急急急急
我以前也遇到过这种问题,问了很多人,都没办法,最后只好rs.close()
然后在连接一次数据库.
如果你不想多次创建数据库连接,你就一次把所有的你需要的数据读出来,然后慢慢折腾.
回答非常正确
package bbs;
import java.sql.*;public class conn{
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:bbs";
Connection conn = null;
ResultSet rs = null;public conn(){
try {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println("bbsreg(): " + e.getMessage());
}
}public ResultSet executeQuery(String sql) {
rs = null;
try {
conn = DriverManager.getConnection(sConnStr);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
System.err.println("aq.executeQuerystrSQL: " + sql);
}
return rs;
}
public void executeUpdate(String sql) {
try {
conn = DriverManager.getConnection(sConnStr);
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql);
}
catch(SQLException ex) {
System.err.println("aq.executeUpdate: " + ex.getMessage());
System.err.println("aq.executeUpadatestrSQL: " + sql);
}
}}
你的问题应该是出现在你创建ResultSet时是指定的类型问题
Statement stmt = conn.createStatement();
这样建立不行,应该指定可以滚到,看一下参数