Java Tomcat 7:连接到Microsoft Access时如何指定数据库资源
我知道如何将特定的数据源连接池添加到Tomcat7中的mysql服务器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
<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