2011-07-30 133 views
2

MS Accessデータベースからデータを取得するプログラムを作成したいと思います。 Javaプログラムを使用してMS Accessデータベースに接続する方法は?

package db; 

import java.sql.*; 

public class MSaccess_archive { 
    public static void main(String[] args) { 

     try { 

      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 

      String accessFileName = "E:/L4_project/sample/db/Database"; 

      String connURL="jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+accessFileName+".accdb;"; 

      Connection con = DriverManager.getConnection(connURL, "",""); 

      Statement stmt = con.createStatement(); 

      stmt.execute("select * from student"); // execute query in table student 

      ResultSet rs = stmt.getResultSet(); // get any Result that came from our query 

      if (rs != null) 
      while (rs.next()){ 

       System.out.println("Name: " + rs.getString("Name") + " ID: "+rs.getString("ID")); 
       } 

       stmt.close(); 
       con.close(); 
      } 
      catch (Exception err) { 
       System.out.println("ERROR: " + err); 
      } 
    } 

} 

しかし、私は以下のように例外を得た:私は怒鳴るなどのプログラムを書いた

ERROR: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Could not find file '(unknown)'.

私は上記のプログラムが正常に動作しますが、私は.accdbファイルを使用する場合、それは上記の例外を与える.mdbファイルを使用する場合。

なぜでしょうか?

+0

わからないを参照してくださいが、中にスラッシュを変更してみてください:文字列AccessFileNameでは= "E:/ L4_project /サンプル/ DB /データベース"。 バックスラッシュを二重にするには:String accessFileName = "E:\\ L4_project \\ sample \\ db \\ Database"; –

+0

ありがとうございます。これは動作しています..... :) – dula

+1

JDBC-ODBC BridgeはJava 8から**削除**されており、サポートされていません(ref:[here](http://docs.oracle.com/javase/ 7/docs/technotes/guides/jdbc/bridge.html)および[ここ](http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6345277)を参照してください)。 [UCanAccess](http://ucanaccess.sourceforge.net/site.html)は一般的な選択肢です(詳細はこちら(http://stackoverflow.com/q/21955256/2144390))。 –

答えて

0

ドライバーは、おそらくその形式を読み取るように更新されていません。 .mdbはAccessの元のものです。 .accdbが改訂されていて、ODBCドライバが変更されている必要があります。

1

特に任意のSQLクエリを実行できる必要がある場合を除き、いつでもjackcessを試すことができます。

3

コントロールパネル>管理ツール>データソース>追加> Microsoft Accessドライバ(* mdb、* accdb)> ok> ok> okの手順に戻ってください。 ODBC接続にはうまくいかないかもしれません。

1

jdbc:odbc:my_access_odbc_dsnをURLとして指定する必要があると思います。my_access_odbc_dsnは、ODBCで設定されているDSN名です。私のURLだったので、私の場合、私は、「PavoDB」と呼ばれるのMS Access 2013データベースにアクセスした

private static final String url="jdbc:odbc:PavoDB"; 
関連する問題