数据库连接文件
<%
//access数据库
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=d:/jsp/oa/database/oa_database.mdb";
Connection conn=DriverManager.getConnection(url,"root","oa8888");
Statement stat=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);   //MYSQL数据库连接
//Class.forName("com.mysql.jdbc.Driver").newInstance();
//String url ="jdbc:mysql://localhost:3306/oa_database";
//Connection conn=DriverManager.getConnection(url,"root","111111");
//Statement stat = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);//SQLSERVER数据库连接
//Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 
//String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=oa_database"; 
//Connection conn=DriverManager.getConnection(url,"sa","111111");
//Statement stat = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
%>mysql sqlserver都支持rs.last();rs.last();  access数据库不支持 ???  运行分页代码后提示:
javax.servlet.ServletException: No data found
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.fy.yh_jsp._jspService(yh_jsp.java:313)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
谢谢高手回答

解决方案 »

  1.   

    改成这个试试:con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
      

  2.   

    con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);一样啊  晕
      

  3.   

    是否select到了数据?
    先rs.next(),看看有没有数据啊。
    另外你的分页sql是否写错了结果根本就没有数据,当然是 no data found了。
    access支持rs.last()的。
      

  4.   

    楼上的朋友:我用mysql  sqlsrver都试过没问题就是选用access出错代码都一样
      

  5.   

    我试过支持的。package test.oracle;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;public class TestResultRow {
    private static final String sql = "select aaa from t1"; public static String[] getArrayFromAccess() {
    String[] ret=new String[]{""};
    ArrayList<String> lst = new ArrayList<String>();
    Connection con = null;
    Statement ps = null;
    ResultSet rs = null;
    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection("jdbc:odbc:test1"); ps = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs = ps.executeQuery(sql);

    while (rs.next()) {
    rs.last();
    System.out.println(rs.getRow());
    }
    } catch (SQLException e) {
    e.printStackTrace();
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    if (rs != null) {
    rs.close();
    }
    if (ps != null) {
    ps.close();
    }
    if (con != null) {
    con.close();
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    return  lst.toArray(ret);
    } public static void main(String[] args) {
    String[] array = TestResultRow.getArrayFromAccess();
    for(int i=0;i<array.length;i++){
    System.out.println(array[i]);
    }
    }
    }
    IWAV0055I Java Bean test.oracle.TestResultRow started with the main method
    8
    null