Connectionインタフェースは、データベースに接続するためのクラスです。データベースに一番近い位置に存在します。接続文字列を使用してデータベースに接続したり、閉じたりします。また、トランザクションの接続管理もします。
メソッド名 | 概要 |
---|---|
close | データベースへの接続を閉じ、JDBCリソースを解除する |
commit | 現在のトランザクションにおける変更を有効とする |
createStatement | SQL文をデータベースに送信するためのStatementオブジェクトを生成する |
getAutoCommit | 自動的にコミットするかどうかの設定を取得する |
isClosed | データベースがクローズされているかどうかを取得する |
prepareStatement | パラメーター付きのSQL文をデータベースに送信するためのPrepareStatementオブジェクトを生成する |
rollback | 現在のトランザクションにおける変更を無効とする |
setAutoCommit | 自動的にコミットするかどうかの設定をする |
次のようなプログラミング手順でデータベースに接続します。
1. java.sqlパッケージのインポート
2. JDBCドライバーのロード
3. データベースに接続
○ プロジェクト
プロジェクトを作成して確認してみましょう。
プロジェクト名 | ConnectionTest |
---|
○ ビルド・パスの設定
JDBCを利用するには、前章でダウンロードしたJarファイルを指定します。追加したプロジェクトにビルド・パスを指定します。プロジェクトを右クリックして「ビルド・パス(B)」―「外部アーカイブの追加(V)...」をクリックします。その後、ファイル選択のダイアログが開くので、用意したJDBCドライバーのJarファイルを指定します。
すると、パッケージ・エクスプローラーに次のように追加したJarファイルが表示されます。
〇 クラスの追加
ConnectionTestクラスを追加し、mainメソッドを用意してください。そして、次のようにプログラムを入力してください。
○ 実行結果
データベースに接続しました。
現在のデータベースの状態: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://[サーバー名][:ポート番号][;オプション] |
28行目ではisClosedメソッドを使用しています。この行ではデータベースをクローズする前に呼び出されているため、開いている状態が表示されます。そして35行目のisClosedメソッドはクローズ後に参照しているので、閉じている状態が表示されます。