2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AccessデータベースにJavaで接続【UCanAccess】※VSCodeで実行できるまで設定

Posted at

目的

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をダウンロードします。
image.png

UCanAccessのフォルダ配置

ダウンロードしたzipを解凍します。
その後フォルダごとわかりやすい場所に移動します。
今回はC:\Program Files\UCanAccess-5.0.0-binに配置しました。

Accessの設定

続いてAccessの設定に入ります。
Accessを開いて「オプション」を選択して下さい。
image.png
オプションの「全般」を開きます。
image.png
このように新規データベースの並び順序が「日本語 - レガシー」になっていることを確認してください。
もし、なってなかったら変更してください。

Accessの設定はこれで完了です。

サンプルデータベースを作成

Javaから接続させるデータベースを作成します。
image.png
このように作成してみました。

また、このデータベースのファイルのパスを記憶しておいてください。
今回は以下のようなパスに保存しました。
C:\Users\kazus\Documents\sample.accdb

付属のコンソールツールでテスト

さて、UCanAccessにはコンソールツールが付属しています。
これはCLIによってAccessに接続できるツールです。

実行するにはUCanAccessのフォルダの中にあるconsole.batを実行します。
するとコマンドプロンプトが起動しますので、ここにAccessデータベースのフルパスを入力することで以降SQLを投げることができます。
やってみましょう。
image.png
このようにデータベースの操作ができました!
※終了するにはCtrl+Cキーです。

VSCodeのJavaプロジェクトで使用

コンソールツールでUCanAccessが使えることが分かりましたので、いよいよVSCodeの設定に入っていきます。

Javaプロジェクトを作成

まず、VSCode上でJavaプロジェクトを作成してください。
Ctrl+Shift+PキーからJava: Create Java Project...で作成できます。
image.png

コーディング

Accessデータベースに接続するコードを作成しておきましょう。

App.java
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を追加します。
image.png
このように+から追加できます。
なお、追加する.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を再起動しておいてください。

いざ実行

▶で実行をしてみましょう。
image.png
このように実行できました!

2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?