目次へ戻る 下へ↓
23.、JDBCの応用
作成者:Fumitaka Makino 更新日:2003-04-25 20:58

・JDBC利用の実際:ロジックと値の分離

JDBCの基本は理解できたと思います。より実践に近い方法でDBにアクセスしてみましょう。通常RDBに対するアクセスにおいては、下記のように「呼びもとのクラス」「RDB」の間に「RDBへのアクセスとロジック処理を専門に受け持つロジックビーン」を用意します。そしてJDBCを直に利用するクラスはロジックビーンとし、ロジックビーンと呼びもとのクラスとの値のやり取りは「カプセル化されたバリュービーン」を用いて行います。このとき、呼びもとのクラスはメソッドレベルまで簡略化された方法でビジネスロジックを駆動し、複雑なJDBCの操作を意識せずにすみます。さらにこの手法は、分散開発を行う際にも有効であり、WEBアプリケーションなどにおいて表示、コントロール層を受け持つ開発者とロジックの開発者が別々に作業を行うことを可能とします。現実的な問題としてスキルレベルが低い開発者(新人やJava以外の開発者)に対して、表示層からロジック層にいたるまでの全ての部分を網羅する形で設計・開発を要求するのは非常に難しく、なおかつ危険です。そのため、スキルレベルの低い開発者は、より分業性の高い限定的な開発を割り当てるべきです。なぜなら、往々にしてスキルレベルが低い開発者はロジックとバリュー、表示ロジックを混在して記述しがちだからです。これはシステムのパフォーマンスやメンテナンス性を大幅に低下させます。

図:実践的なJDBCの利用
JDBCロジックの呼び出しモデル
フロントの開発者
ビジネスロジック開発者
サンプルコードでの簡易モデル

では実際に実装を行ってみましょう。用意するクラスは下記の4つです。

サンプル用のソースファイル(JavaDoc)

abstractLogicBean.java コネクションの取得、切断を受け持つ抽象クラス、新しいロジックビーンはこのクラスを継承して作る
EmpLogicBean.java DBに対する操作をメソッドで実装しているロジックビーン、今回は実行用のmainメソッドも実装している
EmpValue.java 呼びもとのクラス、メソッドとロジックビーンとの間での値のやり取りに利用されるバリュービーン
EmpLogicException.java EmpLogic実行中に発生した問題を扱う例外です。

説明にあるようにabstractLogicBeanはドライバのロードやコネクションの切断等を受け持つ抽象クラスです。これを継承することにより具象ロジックビーンはよりロジックのみを実装できるようにシンプルになります。EmpLogicBeanは実際のロジック処理を受け持ちレコードの取得、追加、変更、削除などを行うメソッドを実装しています。また今回はそれらを駆動するための検証用のmainメソッドも実装しています。EmpValueはDBのEMPテーブルの1レコードを表すカプセル化されたクラスです。基本的に、EmpLogicBeanのメソッドと呼び元のクラス(今回はmainメソッド)はEmpValueクラスを用いて値のやり取りを行います。また例外としてEmpLogicExceptionクラスが定義してありますが、これはEmpLogic実行中に発生したEmpLogic特有の例外を扱うためのExceptionです。

 

 
↑上へ 目次へ戻る