データベースにアクセスする


では、作成したJava DBのデータベースにJavaからアクセスをしてみましょう。ここでは、一般的なアプリケーションのmainメソッドからデータベースにアクセスしてみます。先ほど、サンプルとしてSQLコマンドを実行し、ダミーのテーブルを作成しました。これにアクセスするサンプルを考えてみましょう。

package jp.tuyano;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class DBTest {

  public static void main(String[] args) {
    Connection conn = null;
    Statement state = null;
    ResultSet rs = null;
    try {
      Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
      Properties prop = new Properties();
      prop.put("user", "admin");
      prop.put("password", "admin");
      conn = DriverManager.getConnection
        ("jdbc:derby:C:\DerbyDatabases\allabout_db", prop);
      conn.setAutoCommit(true);
      state = conn.createStatement();
      String query = "select * from testdata";
      rs = state.executeQuery(query);
      while (rs.next()){
        String id = rs.getString("id");
        String msg = rs.getString("msg");
        System.out.println("id:" + id + ", msg:" + msg);
      }
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
    } catch (SQLException e) {
      e.printStackTrace();
    } finally {
      try {
        rs.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
      try {
        state.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
      try {
        conn.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }
}


ここでは、直接データベースファイルにアクセスする形で作成をしてあります。サーバ&クライアントとしてでなく、直接データベースにアクセスをする場合には、まずドライバークラスを以下のようにして読み込みます。

"org.apache.derby.jdbc.EmbeddedDriver"

そして、Connectionの取得を以下のように行います。

conn = DriverManager.getConnection
  ("jdbc:derby:C:\DerbyDatabases\allabout_db", prop);

ここでは、アクセスするユーザIDとパスワードをPropertiesインスタンスにまとめ、これを引数に指定してあります。接続先URLが、「jdbc:derby:データベースのパス」という形になることに注意をしてください。

これで実際にデータベースからテーブルのレコードを取り出し表示できれば、データベースへのアクセスが正常に行えることがわかります。後は、実行するSQLコマンドを変更してデータベースを更に操作することができるでしょう。

※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。