10月19日(月)1、2コマ目
今日、やったこと
トランザクションの課題
今日のホワイトボード
課題作成上のルール
いまさらですが、以下のルールを守ってください。
階層化すること
|
|
図 階層化する |
〇プレゼンテーション
サーブレット、JSPなど。
入力値の取得、表示。必要に応じて、機能実現メソッドを呼び出す。
ここではDBアクセスやシステムが提供すべき機能(検索など)は実装しない。
〇ビジネスロジック
普通のクラス。
システムに必要な機能を提供する。
今回は大した機能はないため、不要。
だけど、本当はトランザクションはここで実装すべき。
〇データアクセス
普通のクラス。
JDBCを使って、データベースアクセスをするのはここのクラスの仕事。
〇データトランスファー
普通のクラス。
フィールド+setter、getterのクラス。
レイア間のデータ受け渡しに使うクラス。
DBアクセス時の例外
基本的に例外はキャッチせず、上位へスロー。
最終的にサーブレットでキャッチ。サーブレットはHttpServletExceptionをスローするため、キャッチした例外をHttpServletExceptionに変換してスローしなおす。
ただし、トランザクション実装部ではSQL実行時に例外がスローされると、ロールバックしなければならない。よって、ここはキャッチ。キャッチ後、ロールバックしエラー内容に応じて対応。
|
|
図 DBアクセス時の例外スロー |
授業内で紹介したコードは以下のとおり。


コメント