Connectionオブジェクト

 Connectionインタフェースは、データベースに接続するためのクラスです。データベースに一番近い位置に存在します。接続文字列を使用してデータベースに接続したり、閉じたりします。また、トランザクションの接続管理もします。

■ 主なメソッド

メソッド名 概要
close データベースへの接続を閉じ、JDBCリソースを解除する
commit 現在のトランザクションにおける変更を有効とする
createStatement SQL文をデータベースに送信するためのStatementオブジェクトを生成する
getAutoCommit 自動的にコミットするかどうかの設定を取得する
isClosed データベースがクローズされているかどうかを取得する
prepareStatement パラメーター付きのSQL文をデータベースに送信するためのPrepareStatementオブジェクトを生成する
rollback 現在のトランザクションにおける変更を無効とする
setAutoCommit 自動的にコミットするかどうかの設定をする
Connectionの主なメソッド

 次のようなプログラミング手順でデータベースに接続します。

1. java.sqlパッケージのインポート
2. JDBCドライバーのロード
3. データベースに接続

○ プロジェクト

 プロジェクトを作成して確認してみましょう。

プロジェクト名 ConnectionTest

サンプルダウンロード

○ ビルド・パスの設定

 JDBCを利用するには、前章でダウンロードしたJarファイルを指定します。追加したプロジェクトにビルド・パスを指定します。プロジェクトを右クリックして「ビルド・パス(B)」―「外部アーカイブの追加(V)...」をクリックします。その後、ファイル選択のダイアログが開くので、用意したJDBCドライバーのJarファイルを指定します。

ビルド・パスの設定画面を開く
ビルド・パスの設定画面を開く

 すると、パッケージ・エクスプローラーに次のように追加したJarファイルが表示されます。

Jarファイルが追加された
Jarファイルが追加された

〇 クラスの追加

 ConnectionTestクラスを追加し、mainメソッドを用意してください。そして、次のようにプログラムを入力してください。

  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. public class ConnectionTest {
  4.  public static void main(String[] args) {
  5.   try{
  6.    //JDBCドライバークラスを指定する
  7.    String drivername = "com.mysql.jdbc.Driver";
  8.    //データベースを指定する
  9.    String url = "jdbc:mysql://localhost:3306/books?characterEncoding=utf8";
  10.    //ユーザー名を指定する
  11.    String username = "root";
  12.    //パスワードを指定する
  13.    String password = "";
  14.    //指定したドライバークラスを読み込む
  15.    Class.forName(drivername);
  16.    //データベースに接続する
  17.    Connection con = DriverManager.getConnection(url, username, password);
  18.    System.out.println("データベースに接続しました。");
  19.    //現在の状態を表示する
  20.    System.out.println("現在のデータベースの状態:" + con.isClosed());
  21.    //データベースを切断する
  22.    con.close();
  23.    System.out.println("データベースを切断しました。");
  24.    //現在の状態を表示する
  25.    ystem.out.println("現在のデータベースの状態:" + con.isClosed());
  26.   }catch(Exception e){
  27.    //例外の状態を出力する
  28.    e.printStackTrace();
  29.   }
  30.  }
  31. }

○ 実行結果

データベースに接続しました。
現在のデータベースの状態:false
データベースを切断しました。
現在のデータベースの状態:true

○ 解説

 1、2行目で記述した内容はimportの指定です。Connectionクラスなどを指定するときには名前空間名も指定します。本来ならば24行目の記述は「java.sql.Conection」というように完全修飾名で指定することになります。importキーワードで名前空間を指定することでクラス名のみで指定できるようになります。

 データベースに接続する準備として、データベース用のドライバーをJavaの実行環境に読み込みます。ビルド・パスに設定したJarファイルの中から、ドライバーにあたるクラスを読み込ませます。今回は「com.mysql.jdbc.Driver」クラスを指定します。このクラスを21行目の「Class.forName()」でロードしています。これにより、24行目でデータベースに接続するときに、あらかじめ読み込んだドライバーを使うようになります。

 データベースに接続するためには24行目のDriverManagerクラスのgetConnectionメソッドを使用します。このメソッドは、データベースとの接続を表すConnectionオブジェクトを取得します。使用する際に引数で接続するデータベースのURL、ユーザー名、パスワードを指定します。

 接続するデータベースはURLで指定します。データベース製品ごとに次にようなURLを指定します。

データベース製品 URL書式
MySQL jdbc:mysql://[サーバー名][:ポート番号]/[データベース名]
PostgreSQL jdbc:postgresql://[サーバー名][:ポート番号]/[データベース名]
Oracle jdbc:oracle:thin:@[サーバー名][:ポート番号][:SID]
SQL Server jdbc:sqlserver://[サーバー名][:ポート番号][;オプション]
データベース製品ごとのURL

 28行目ではisClosedメソッドを使用しています。この行ではデータベースをクローズする前に呼び出されているため、開いている状態が表示されます。そして35行目のisClosedメソッドはクローズ後に参照しているので、閉じている状態が表示されます。

データベースとConnectionオブジェクトの関係
データベースとConnectionオブジェクトの関係

前へ   次へ