MENU

データベースへ接続するプログラム

はじめに 

データベースの種類や接続方法によって細かな設定の違いはありますが、本章で学ぶ記述をマスターすればどのようなデータベースでもスムーズに接続を行うことができます。 
Javaからデータベースに接続するための基本的かつ一般的な記述を学んで行きましょう! 

Step1: 接続するプログラム 

DBAccessクラスは、 データベースへの接続と切断の処理を行なうプログラムです。 
クラス名に関しては、DBAccess にする必要はありません。 クラス名は現場によって変わると思います。 
重要なのは中の処理です。 
例題を元にデータベースとの接続の仕方と切断の仕方を学んで行きましょう。 

例題 

Step2: DBAccessを読み解く 

Class.forName() 

上記の1行目のコードで Class.forName() メソッドに JDBCドライバ名を文字列で与え、JDBCドライバをロードしています。
つまり、 データベースへ接続する下準備ということです。

DriverManagerクラス 

2行目のコードは、 DriverManagerクラスのgetConnection() メソッドを使用してデータベースへの接続を行います。 
このgetConnection() メソッドには、3つの引数を与えます。 

jdbc:postgresql:// 【ホスト名】 / 【データベース名】 【ユーザ名】 【パスワード】 
これで接続したいデータベースを指定することができます。 

また、Connectionインタフェースや DriverManagerクラスは、java.sqlパッケージ内のクラスです。 
なので一行目・二行目で、 import java.sql.Connection と import java.sql.DriverManager をインポートしています。 

connection.close() 

接続の時に作られた connectionオブジェクトを切断 (開放) するために close() メソッドを実行します。 
これで、 データベースから切断されます。 

確実に切断を行うには、 finally句に記述し、Connectionが接続されているか (nullでないか)の判定を行うよう記述します。 
切断する理由はSQL文がデータベース上に滞留し処理が進まなくなり、エラーになったりします。 
なので、 DBに接続したら、 必ず切断するよう記述します。 

補足 

上記のように、あらかじめ定数として記述することがベターです。 

理由はいくつかあります。 

1,変更の多い値ではない。 
2,なんども同じように、ホスト名やデータベース名を記述する必要がない。 
3,コーディングのケアレスミスをなくす。 

このあたりもポイントになるので、しっかり抑えて起きましょう。 

まとめ 

1. Class.forName() でDB接続の準備 
2. 接続処理 
3. 切断処理 

上記3つの流れはしっかり頭に入れておきましょう!

目次