日期:2014-05-18  浏览次数:20775 次

jsp直连access数据库测试问题:
news.mdb和news.jsp放在一个文件夹下

运行news.jsp为什么有如下错误提示:
java.sql.SQLException:   [Microsoft][ODBC   Microsoft   Access   Driver]   '(未知的) '不是一个有效的路径。   确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。

这是一个access数据库驱动程序,本地应该有的为什么会提示没有?

源代码:
<%@page   contentType= "text/html;   charset=gb2312 "   language= "java "   import= "java.sql.* "   errorPage= " "%>

<%
try{
    Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver ");
}
catch(ClassNotFoundException   e){
    out.print(e);
    out.print( "1 ");
}
try{
    String   strDirPath=application.getRealPath(request.getRequestURI());
    strDirPath=strDirPath.substring(0,strDirPath.lastIndexOf( '\\ '))+ "\\ ";
    String   url   =   "jdbc:odbc:driver={Microsoft   Access   Driver   (*.mdb)};DBQ= "+strDirPath+ "news.mdb ";
    Connection   conn   =   DriverManager.getConnection(url);
    Statement   stmt   =   conn.createStatement();
    ResultSet   rs   =   stmt.executeQuery( "SELECT   *   FROM   news ");
    out.println( "User-list "+ " <br> ");
    while(rs.next()){
        out.print(rs.getString(1)+ "   ");
        out.print(rs.getString(2)+ " <br> ");
    }
    rs.close();
    stmt.close();
    conn.close();
}
catch(Exception   ex){
    out.print(ex);
    out.print( "2 ");
}
%>

------解决方案--------------------
很简单,就是你的路径错了,修改一下路径! 用绝对路径! 但是绝对路径的前面不要直接写,要用request.getContextPath()+ "/ "+后面的路径,这样永远不会错了!

注意:request.getContextPath()这个我忘记具体名字万一拼写错误,请见谅哈!
------解决方案--------------------
恭喜!接分!
------解决方案--------------------
俺有个办法也可以解决 用 request.getRealPath( "sss.mdb ") 也可以找到数据库文件的绝对路径。 不过 不如上面说的好。 俺学习中。
------解决方案--------------------
恭喜..JF

------解决方案--------------------
恭喜..散分
谢谢!