Statement stm = null;
ResultSet rs = null;
Connection  con=null;          
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");      
String url = "jdbc:odbc:MS Access Database;DBQ=.\\1.mdb";//打开同一目录下的1.mdb
con = DriverManager.getConnection(url,"","");    
stm = con.createStatement();
String sql = "";
rs = stm.executeQuery("");
if(rs.next())
{
your code;
}
         else
         {
                  out.println("no rs!");
         }
}
………………

解决方案 »

  1.   

    package youpackage
    import java.sql.*;
    public class jdbc
    {
                    String dbUrl="jdbc:odbc:youdb";
                    String theUser="";
                    String thePw="";
                    Statement conn;
                    Connection c=null;
                    ResultSet rs=null;
                    String dbDriver="sun.jdbc.odbc.JdbcOdbcDriver";
                    public jdbc()
                    {
                            try
                            {
                                    Class.forName(dbDriver);
                                    c=DriverManager.getConnection(dbUrl,theUser,thePw);
                                    conn=c.createStatement();
                            }
                            catch (Exception e)
                            {
                                    e.printStackTrace();
                            }
                    }
                    public boolean executeUpdate(String sql)
                    {
                            try
                            {
                                    conn.executeUpdate(sql);
                                    return true;
                            }
                            catch (SQLException e)
                            {
                                    e.printStackTrace();
                                    return false;
                            }
                    }
                    public ResultSet executeQuery(String sql)
                    {
                            rs=null;
                            try
                            {
                                    rs=conn.executeQuery(sql);
                            }
                            catch (SQLException e)
                            {
                                    e.printStackTrace();
                            }
                            return rs;
                    }
                    public void close()
                    {
                            try
                            {
                                    conn.close();
                                    c.close();
                            }
                            catch (Exception e)
                            {
                                    e.printStackTrace();
                            }
                    }}
      

  2.   

    对了String sConnStr = "jdbc:odbc:faq.mdb";
    不能这样写的,而应该这样写:String sConnStr = "jdbc:odbc:faq";
    因为他只是一个数据源的名字,而不是库名!
      

  3.   

    我这样写对吗?请指点
    package test;
    import java.sql.*;
    public class faq {
    String sDBDriver ="sun.jdbc.odbc.JdbcOdbcDriver";
    String sConnStr = "jdbc:odbc:MS Access Database;DBQ=.\\faq.mdb";
    Connection conn = null;
    ResultSet rs = null;
    public faq() {
    try {
    Class.forName(sDBDriver); 
    }
    catch(java.lang.ClassNotFoundException e) {
    System.err.println("faq(): " + 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());
    }
    return rs;
    }
    }
      

  4.   

    服务器报的错误是
    aq.executeQuery: [Microsoft][ODBC Microsoft Access Driver] 找不到文件 '(未知的)'
      

  5.   

    我刚学JSP,是看书的,书上的错误太多
    我想问一下,请高手解惑。
    String url = "jdbc:odbc:MS Access Database;DBQ=.\\1.mdb";  //打开同一目录下的1.mdb
    如果不是同一个目录,应该这样写吗?
    真实目录?
    C:\hihigo\1.mdb
    还是虚拟目录?
    /test/1.mdb
      

  6.   

    相对路径好像不太行,我在JSP页面是这样写的:
    (如果你在useBean或servlet里面写要自已做相应的改动,我也不会,呵呵,可以问下高手)
    String dbpath=request.getServletPath().substring(0,request.getServletPath().indexOf("/",1)+1);
    if(dbpath.trim().equals(""))dbpath="/";
    String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+application.getRealPath("")+dbpath+"odbc.mdb;";
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con=DriverManager.getConnection(url);
    Statement stmt=con.createStatement();
    sql="select * from book";
    ResultSet rs=stmt.executeQuery(sql);
    while(rs.next()){
    --------------
    }
      

  7.   

    好像还是不对?
    是equals("  "))还是equals("")),中间有空格吗?
      

  8.   

    好像还是不对?
    是equals("  "))还是equals("")),中间有空格吗?
      

  9.   

    没有空格!
    (注意要放到同一目录下)
    我的数据库下载:
    http://202.112.104.252:8080/bluecn/odbc.mdb
    odbc.jsp:
    <h2>JSP不用数据源直接连接MDB数据库</h2><br><br>
    <h3>以下是MDB数据库的内容</h3>
    <%@page contentType="text/html; charset=gb2312" language="java"%>
    <%@ page import="java.sql.*" %>
    <html>
    <head>
    <title>odbc</title>
    <meta http-equiv="Content-Type" content="text/html;charset=gb2312">
    </head>
    <body>
    <%
    try
    {       String dbpath=request.getServletPath().substring(0,request.getServletPath().indexOf("/",1)+1);
            if(dbpath.trim().equals(""))dbpath="/";
    String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+application.getRealPath("")+dbpath+"odbc.mdb;";
            //String url=("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=d:\\web\\odbcMdb\\odbc.mdb;ImplicitCommitSync=Yes;MaxBufferSize=512;MaxScanRows=128;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes;").replace('\\','/');
    //url="jdbc:odbc:odbc.DataName";
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con=DriverManager.getConnection(url);
    Statement stmt=con.createStatement();
    String sql,name,theme,content,qq,mail,tdate,reply,rdate,admin,password;
    int bookid,adminid;
            sql="select * from book";
    ResultSet rs=stmt.executeQuery(sql);
    while(rs.next())
    {
              bookid=rs.getInt("id");
      name=rs.getString("name");
              theme=rs.getString("theme");
              content=rs.getString("content");
              qq=rs.getString("qq");
              mail=rs.getString("mail");
              tdate=rs.getString("tdate");
              reply=rs.getString("reply");
              rdate=rs.getString("rdate");
              out.println(bookid+"<br>"+name+"<br>"+theme+"<br>"+content+"<br>"+qq+"<br>"+mail+"<br>"+tdate+"<br>"+reply+"<br>"+rdate+"<br><br><br>");
    }
    if(rs!=null)rs.close();
            if(stmt!=null)stmt.close();
    if(con!=null)con.close();
    }catch(SQLException e){
            while(e!=null){
      out.println("SQLState:"+e.getSQLState());
      out.println("Message:"+e.getMessage());
      out.println("Vendor:"+e.getErrorCode());
      e=e.getNextException();
     }
    }
    %>
      

  10.   

    演示:
    http://202.112.104.252:8080/bluecn/odbc.jsp