目的
MS AccessのデータベースにJavaでアクセスします。
その際UCanAccess
というJDBCドライバを使用すると良いみたいなので導入してみます。
また、筆者がJavaの開発でVSCodeを使用しているため、こちらで実行できるまで設定してみます。
前提条件
次の環境を前提とします。
- JDK15(少なくとも8)
- MS Access 2016
- VSCode
もしVSCodeで開発しないのならVSCodeは必須ではありません。
VSCodeで開発する際はVSCodeでJavaの開発が行える設定をする必要があります。
VSCodeでJava開発は別途解説していますのでこちらを参照してください。
Java15の導入とVSCode環境設定
UCanAccessの導入
UCanAccessはAccessに接続するためのJDBCの一種です。
JDBCとは
Javaがデータベースに接続するためのライブラリでJDKに同梱されています。
これに今回のUCanAccessなどの外部ライブラリを加えることにより、Access, MySQL等のデータベース製品に接続できるわけです。
外部ライブラリは製品ごとに存在しています。
UCanAccessのダウンロード
こちらからダウンロードします。
https://sourceforge.net/projects/ucanaccess/files/
「Download Latest Version」を選択しUCanAccess-5.0.0-bin.zip
をダウンロードします。
UCanAccessのフォルダ配置
ダウンロードしたzipを解凍します。
その後フォルダごとわかりやすい場所に移動します。
今回はC:\Program Files\UCanAccess-5.0.0-bin
に配置しました。
Accessの設定
続いてAccessの設定に入ります。
Accessを開いて「オプション」を選択して下さい。
オプションの「全般」を開きます。
このように新規データベースの並び順序が「日本語 - レガシー」になっていることを確認してください。
もし、なってなかったら変更してください。
Accessの設定はこれで完了です。
サンプルデータベースを作成
Javaから接続させるデータベースを作成します。
このように作成してみました。
また、このデータベースのファイルのパスを記憶しておいてください。
今回は以下のようなパスに保存しました。
C:\Users\kazus\Documents\sample.accdb
付属のコンソールツールでテスト
さて、UCanAccessにはコンソールツールが付属しています。
これはCLIによってAccessに接続できるツールです。
実行するにはUCanAccessのフォルダの中にあるconsole.bat
を実行します。
するとコマンドプロンプトが起動しますので、ここにAccessデータベースのフルパスを入力することで以降SQLを投げることができます。
やってみましょう。
このようにデータベースの操作ができました!
※終了するにはCtrl+C
キーです。
VSCodeのJavaプロジェクトで使用
コンソールツールでUCanAccessが使えることが分かりましたので、いよいよVSCodeの設定に入っていきます。
Javaプロジェクトを作成
まず、VSCode上でJavaプロジェクトを作成してください。
Ctrl+Shift+P
キーからJava: Create Java Project...
で作成できます。
コーディング
Accessデータベースに接続するコードを作成しておきましょう。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class App {
public static void main(String[] args) throws Exception {
try {
Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:/Users/kazus/Documents/sample.accdb");
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("select * from users");
while (rs.next()) {
System.out.println(rs.getString("user_name"));
}
rs.close();
st.close();
conn.close();
} catch (SQLException e) {
System.out.println("error");
}
}
}
JavaプロジェクトにUCanAccessのライブラリを追加
プロジェクトのReferenced LibrariesにUCanAccessの.jarを追加します。
このように+
から追加できます。
なお、追加する.jarは以下の通りです。
- UCanaccess-5.0.0.jar
- lib/配下にある次の4つ
- commons-lang3-3.8.1.jar
- commons-logging-1.2.jar
- hsqldb-2.5.0.jar
- jackcess-3.0.1.jar
追加したら念のためVSCodeを再起動しておいてください。