スポンサードリンク

Java8でデータベースAccessにUCanAccessで接続するする方法。

Java8でデータベースソフトのAccessに接続するには、JDBCドライバのUCanAccessを使います。

当講座では、これまでJDBC-ODBCブリッジを使用していました。

JDKとJREをインストールする時、
講座の手順と同じバージョンにすれば、そのまま使えます。

しかしJava8だと、以下のようなエラーメッセージが出るはずです。

java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver


これはJava8には該当するクラスが無くなったからです。
(つまりサポートされなくなった)

Java8では、JDBC ODBCブリッジが標準では使えなくなった(削除された)ため、
ODBCを使用した接続が出来ないのが原因。

Java7でも非推奨らしいです。

そこで、UCanAccessを使うわけです。

今回、動作確認を行ったのは、次の環境です。

OS Windows8.1
Java8 64bit版
JDK、JREはそれぞれDドライブの直下にインストール
環境変数のPathもDドライブのJdkに設定
SampleDB030.mdbはDドライブの直下に配置
ODBCデータソースへの登録はもう不要 *


以下のWebサイトから、UCanAccessを入手(ダウンロード)します。
https://osdn.jp/projects/sfnet_ucanaccess/

「最新ダウンロードファイル」のところから、
日付の新しいzipファイルを選択してください。

例 UCanAccess-3.0.3.1-bin.zip

ダウンロードしたzipファイルを展開(解凍)すると、
以下の5つのjarファイルがあります。

ucanaccess-2.0.9.5.jar
libフォルダの中に
commons-lang-2.6.jar
commons-logging-1.1.1.jar
hsqldb.jar
jackcess-2.1.0.jar


これらを先にインストールしておいたjreのextフォルダにコピー&ペーストします。
例 D:\jre\lib\ext

次に当講座の「Step2・データベースに接続」で「sample100」フォルダ内に作成した
「DbConnect.java」の一部を書き換えます。

保存先は、CドライブでもDドライブでもかまいません。

WindowsXPより新しいパソコンでは、
Cドライブの権限が強くなっているので、Dドライブのほうが良いでしょう。

*「\」はWindowsではエンマークのことです。

保存先 D:\java\sample100
ファイル名 DbConnect.java

・旧

import java.sql.*;

class DbConnect {
  public static void main(String args[]) {
    try {
      //JDBCドライバのロード
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      //各設定
      String url = "jdbc:odbc:SampleDB030";
      String user = "";
      String pass = "";

      //データベースに接続
      Connection con = DriverManager.getConnection(url,user,pass);

      System.out.println("接続成功");

      //データベースを切断
      con.close();

    } catch (Exception e) {
      System.out.println("例外発生:" + e );
    }
  }
}


・新

import java.sql.*;

class DbConnect {
  public static void main(String args[]) {
    try {
      //各設定
      String url = "jdbc:ucanaccess://D:/SampleDB030.mdb";
      String user = "";
      String pass = "";

      //データベースに接続
      Connection con = DriverManager.getConnection(url,user,pass);

      System.out.println("接続成功");

      //データベースを切断
      con.close();

    } catch (Exception e) {
      System.out.println("例外発生:" + e );
    }
  }
}


今回、変わったのは、
・ODBCデータソースへの登録が不要になったこと
・JDBCドライバのロードが不要になったこと
・urlの部分は、ucanaccessでファイル名まで指定するようになったこと

あとは「Step2・データベースに接続」の手順で、
コンパイルとJavaプログラムの実行を行い、動作確認してください。

また、以降のステップでは、「DbConnect.java」の中身を、
今回説明したように書き替えてください。

それ以外は、講座の手順通りで動作するはずです。

ps:
JREはJava8をインストールしたもの以外にも、
C:\Program Files (x86)\Java
などにも複数のバージョンがあるはずです。

ここには、Webブラウザで利用される最新版のJREがインストールされるのですが、
ここのextフォルダにUCanAccessを配置すると、
更新される度に再配置が必要なので面倒です。

だからJava8と同時にインストールした公開用のJREのほうに配置しておいた方が、
手間がかからないので便利です。

Javaを学習する時のバージョンについて。

Javaバージョンは、いくつか種類があります。

JavaのJRE(Java Runtime Environment)は、
セキュリティーが更新された最新版が、常に提供されています。

また、Javaでプログラムを開発する時に必要なJDK(Java Development Kit )も、
最新バージョンが提供されています。

最新版では、プログラムの修正により、

セキュリティーが向上するため、リスクが減ったり、

新しい機能が使える(機能アップデート)ことがあります。

Javaのパフォーマンスが向上するのもメリットです。

だから普通にJavaを利用するのでしたら、最新版をおすすめします。

しかし、Javaプログラミングを当無料講座で学習する時は、
Java6というバージョンを使用してください。

Java6の入手はこちら

なぜなら、掲載しているプログラムや図は、Java6を使って作ってあるからです。

それに特定のバージョンでしか使えない機能があるのも理由の一つです。

ページ数も多いし、プログラムや図を常に最新版に合わせるのは、
大変な作業量となってしまいます。

そこで読者には、Javaの学習と実用を分けて考えて欲しいのです。

Javaを学習する時は、Java6を使うと、プログラムも図もそのまま使えます。

これだと手順がまったく同じになります。

そしてJavaを使ったアプリケーション開発に慣れてきたら、

最新版のJDKやJREを使ってください。

その頃にはJavaのバージョンに合わせて、
プログラムを書き換えることが可能なはずですから。

スポンサードリンク






Java初心者入門講座TOPへ