2011-12-05 19 views
3

への接続を行うとき、私はデータベースのリソースを指定するにはどうすればよい私は、私のMETA-INF/context.xmlTomcatの7は:Tomcatの7中のMySQLサーバにプールする方法に固有のデータソースの接続のMicrosoft Access

<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" 
/> 

を追加知って

  1. これを行う方法を教えてもらえますか?Microsoft Access
  2. Java WebアプリケーションからMicrosoft Accessに接続するにはJDBC-ODBCブリッジが必要ですか?

UPDATE:これは私の試みですが、私はこれを行うと、私はUPDATE 2 WARNING: Unexpected exception resolving reference java.sql.SQLException: sun.jdbc.odbc.JdbcOdbcDriver

を得た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"    
      /> 

に走った::私は書くことを試みました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); 
    } 
} 

答えて

3

は、私はこのようなURLを使用すると思います:

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

JDBCドライバクラスがあるsun.jdbc.odbc.JdbcOdbcDriver(少なくとも私は最後にそれを使用する場合、それはあった。それは戻って2004年にありました)。

このスタイルは、ODBCデータソースを作成する手順が不要なため、このスタイルを使用することをお勧めします。これは、Javaデプロイメント内のファイルの正確な場所を保持します。

はい、市販のJDBCドライバを購入していない限り、JDBC-ODBCブリッジが必要です。

あなたは、マルチユーザー環境での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

+0

はどうもありがとう、私は同様のアクセスを好まないないが、ここでは選択の余地。 'driverClassName'は' sun.jdbc.odbc.JdbcOdbcDriver'ですか?工場はありますか? –

+0

のための工場?データベース接続を意味しますか?私はあなたがJNDI接続プールを使用していることを願っています。それが工場の意味であれば、答えは「はい」です。これはTomcat設定の一部ですが、META-INF/context.xmlがあるので、あなたは既にそれを知っています。 – duffymo

+0

ええ、私はJNDI接続プーリングを使用しています。もう少し私を助けてくれればもう1つの質問があります.Jdbc-Odbcブリッジにはどうすればいいですか?私はgooleとeasysoft、http://www.easysoft.com/products/data_access/jdbc_odbc_bridge/の1つを参照してくださいが、多くはない、それは右ですか? Sun/OracleはJDBC-ODBCブリッジを生成しませんか? –

関連する問題