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

Java Tomcat 7:连接到Microsoft Access时如何指定数据库资源,java,ms-access,tomcat,jdbc,tomcat7,Java,Ms Access,Tomcat,Jdbc,Tomcat7,我知道如何将特定的数据源连接池添加到Tomcat7中的mysql服务器 <Resource type="javax.sql.DataSource" name="jdbc/TestDB" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhos

我知道如何将特定的数据源连接池添加到Tomcat7中的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"
/>
当我这样做时,我得到了
警告:意外异常解析引用
java.sql.SQLException:sun.jdbc.odbc.JdbcOdbcDriver

更新2::我试图编写一个单独的程序来连接到Microsoft Access db。我得到了
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);
    }
}

我会使用如下URL:

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的陷阱:

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

以下是关于在Tomcat上设置JNDI数据源的其他内容:


非常感谢,我也不喜欢访问,但在这里别无选择。是
drivercassname
sun.jdbc.odbc.JdbcOdbcDriver
?是否有一家工厂为。。。。?你是说数据库连接?我希望您使用的是JNDI连接池。如果这就是你所说的工厂,答案是“是”。这是Tomcat配置的一部分,但是您已经知道,因为您有一个META-INF/context.xml。是的,我正在使用JNDI连接池,如果您不介意帮我一点忙,我还有一个问题,我应该为Jdbc Odbc桥使用什么?我在谷歌上看到了一个easysoft,但不是很多,对吗?Sun/Oracle不生产JDBC-ODBC网桥吗?不用担心。我上面提到的Sun JDBC-ODBC类与JDK一起提供,因此您不需要JDK之外的任何东西就可以使用它。显然,64位JDK不包含
sun.jdbc.odbc.JdbcOdbcDriver
jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\\path\\your-access-database.mdb