10月12日(火)1、2コマ目

今日、やったこと

Web版Javaのトランザクションプログラム実装

今日のホワイトボード

パッケージ階層

アプリケーションの階層分けとパッケージを一致させている。

図 パッケージと階層


sessionオブジェクト取得

HttpServletRequestクラスのgetSession()メソッドでsessionオブジェクトが取得できる。

ただ、引数とセッションの状態で戻り値が異なります。

図 sessionオブジェクト取得方法

新規にセッションがスタートできるのはgetSession(true)のみです。


価格用テキストボックス

テキストボックスの名前(name属性)でどの商品(ID)がわかるように、itemid_xxにしている。(xxはID)

図 価格用テキストボックス

サーブレットでは

①受信データの全パラメータ名取得

 HttpServletRequestのgetParameterNames()を利用。

 戻り値はEnumeration<String>。

②取得した全パラメータ名からテキストボックスのname属性と一致するものを探す

 name属性は itemid_xx(xxはID)。

 あいまい検索で名前がitemid_xxを探す。

 Stringクラスにはmatches()メソッドがあり、引数に正規表現を使えばあいまい検索もできる。

③テキストボックスの名前から入力値を取得

 ここはいままでと同じ。

 HttpServletRequestのgetParameter()を使う。

④テキストボックスの名前からIDを取り出す

 テキストボックスの名前はitemid_xx。

 _で分割すればいい。

 Stringクラスにはsplit()メソッドがあり、分割することができる。


今日のソースコード

ItemDAOクラス

DBアクセスクラス。

update()は引数のリストの内容でトランザクションテスト1テーブルを更新する。

もし、1つでも更新に失敗したら、全更新をキャンセル(ロールバック)。

すべての更新が成功したら全更新確定(コミット)。


IndexSrvクラス

サーブレット。

更新ボタンクリック時にdoPost()を実行。

全商品の価格データが送信されるため、どの商品(ID)の価格なのかがわかるようにする必要がある。


index.jsp

JSPファイル。

価格用テキストボックスがサーブレット側でどの商品のテキストボックスかわかるようにしている。


Itemクラス、Serviceクラスも作った。

このブログの人気の投稿

10月7日(木)3、4コマ目

10月5日(火)1、2コマ目

10月26日(火)1、2コマ目