我知道如何将特定的数据源连接池连接到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
,
Microsoft Access
执行此操作吗? 更新:这是我的尝试,但我遇到了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);
}
}
答案 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