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
ファイルを使用する場合。
なぜでしょうか?
わからないを参照してくださいが、中にスラッシュを変更してみてください:文字列AccessFileNameでは= "E:/ L4_project /サンプル/ DB /データベース"。 バックスラッシュを二重にするには:String accessFileName = "E:\\ L4_project \\ sample \\ db \\ Database"; –
ありがとうございます。これは動作しています..... :) – dula
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))。 –