如何将microsoft access数据库连接到jsp tomcat?

Posted

技术标签:

【中文标题】如何将microsoft access数据库连接到jsp tomcat?【英文标题】:How to connect microsoft access database to jsp tomcat? 【发布时间】:2013-10-20 10:37:54 【问题描述】:

我想通过访问数据库在我的页面上创建一个登录表单。这是连接代码

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<%
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = DriverManager.getConnection("jdbc:odbc:Driver=Microsoft Access Driver (*.mdb, *.accdb);DBQ=" + application.getRealPath("WEB-INF/travDB.accdb"));
    Statement st = con.createStatement(1004,1008);
%>

当我尝试登录时,出现错误提示

type Exception report

message An exception occurred processing JSP page /Advance/Course1/connect.jsp at line 4

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /Advance/Course1/connect.jsp at line 4

1: <%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
2: <%
3:  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
4:  Connection con = DriverManager.getConnection("jdbc:odbc:Driver=Microsoft Access Driver (*.mdb, *.accdb);DBQ=" + application.getRealPath("WEB-INF/travDB.accdb"));
5:  Statement st = con.createStatement(1004,1008);
6: %>


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

root cause

javax.servlet.ServletException: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:912)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:841)
    org.apache.jsp.Advance.JSP.Project.JSP_005fH2Soal2.JSP_005fH2Soal2_005fT213.doLogin_jsp._jspService(doLogin_jsp.java:119)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

root cause

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
    sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
    sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
    sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
    sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
    sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
    java.sql.DriverManager.getConnection(Unknown Source)
    java.sql.DriverManager.getConnection(Unknown Source)
    org.apache.jsp.Advance.JSP.Project.JSP_005fH2Soal2.JSP_005fH2Soal2_005fT213.doLogin_jsp._jspService(doLogin_jsp.java:72)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

我已经在 Course1 文件夹中创建了 WEB-INF 文件夹,connect.jsp 也在文件夹 Course1 中。 我该怎么办?

我使用的是 Windows 7 Professional 64bit,以及 tomcat 版本 7.0,jre 6 64bit

【问题讨论】:

出色的开始。现在,是否安装了 64 位版本的 Access 数据库引擎? @GordThompson 如何检查? Windows Control Panel > Administrative Tools > Data Sources (ODBC)。在“驱动程序”选项卡上,您是否看到列出了“Microsoft Access 驱动程序(*.mdb、*.accdb)”? @GordThompson 未在驱动程序选项卡上列出。但在用户 dsn 选项卡上列出 【参考方案1】:

您是否在使用 32 位 MS Access 数据库? 您提到您有 64 位操作系统和 JRE 也是 64 位,但如果您有 32 位 Access 数据库,则会发生上述异常。 See this similar post。

您不能从 64 位程序直接连接到 32 位 Access ODBC 驱动程序。 虽然 Microsoft 随 Windows(32 位和 64 位)分发 32 位 ODBC Microsoft Access 驱动程序,但它不随 Windows 64 分发 64 位 MsAccess 驱动程序。Microsoft 提供了一个64 bit Access ODBC Driver。下载和安装 64 位 MS Access 驱动程序存在一些问题。Refer this answer

类似的帖子

Post 1 Post 2 Not similar but helpful

【讨论】:

已经有 *.mdb 在 Microsoft 访问中使用 *.accdb 。我应该重新添加吗?

以上是关于如何将microsoft access数据库连接到jsp tomcat?的主要内容,如果未能解决你的问题,请参考以下文章

PowerPivot - 连接到 Microsoft Access 数据库 - 用户名和密码

如何通过 odbc_connect() 从另一台计算机连接到 Microsoft Access 数据库?

从 XCode 连接到 Microsoft Access 数据库

尝试连接到 R 中的 Microsoft Access 数据库的“参数太少”

如何使用c#连接到access 2007

我可以将MS Access连接到SQL Server而不是特定的SQL Server数据库吗?