Tomcat 7:如何在连接到Microsoft Access时指定数据库资源

时间:2011-12-05 23:14:03

标签: java ms-access tomcat jdbc tomcat7

我知道如何将特定的数据源连接池连接到Tomcat 7中的mysql服务器,添加

<Resource type="javax.sql.DataSource"
        name="jdbc/TestDB"
        factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/mysql"
        username="mysql_user"
        password="mypassword123"
/>

到我的META-INF/context.xml

  1. 有人可以告诉我如何对Microsoft Access执行此操作吗?
  2. 我是否需要JDBC-ODBC桥来连接从我的Java Web应用程序到Microsoft Access?
  3. 更新:这是我的尝试,但我遇到了SQLException

    <Resource  type="javax.sql.DataSource"
               name="jdbc-odbc/qtl"
               maxActive="100"
               maxIdle="30"
               maxWait="10000"
               factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
               driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"
               url="jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=/Users/KingdomHeart/resources/db.mdb"               
               />
    

    当我这样做时,我得到WARNING: Unexpected exception resolving reference java.sql.SQLException: sun.jdbc.odbc.JdbcOdbcDriver

    更新2::我尝试编写一个单独的程序,以便连接到Microsoft Access数据库。我得到java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver这是我的代码。我必须在课程路径中需要一个jar驱动程序,不是吗?

    public static void main(String[] args) {
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String fileName = "/Users/KingdomHeart/resources/MyTable.mdb";
            String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
            database += fileName + ";DriverID=22;READONLY=true";
            Connection con = DriverManager.getConnection(database, "", "");
            System.out.println("here");
        } catch (SQLException ex) {
            Logger.getLogger(TestJdbcOdbc.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(TestJdbcOdbc.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    

1 个答案:

答案 0 :(得分:3)

我会使用这样的网址:

jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\\path\\your-access-database.mdb

JDBC驱动程序类是sun.jdbc.odbc.JdbcOdbcDriver(至少是我上次使用它时;那是在2004年)。

我更喜欢这种风格,因为它消除了创建ODBC数据源的步骤。它保持文件在Java部署中的精确位置。

是的,您需要JDBC-ODBC桥(除非您购买了商业JDBC驱动程序)。

您应该了解在多用户环境中使用Access的缺陷:

http://msdn.microsoft.com/en-us/library/aa167840(v=office.11).aspx

我个人的建议是使用MySQL或PostgreSQL而不是Access。

以下是您可能想要了解的有关在Tomcat上设置JNDI数据源的其他内容:

http://craicpropagation.blogspot.com/2009/02/how-to-use-same-jndi-resource-name-on.html