実現手順
芋焼酎酒店で複数のユーザーが利用できるようにするために、以下の手順で実現します。
- JDBCレルムの実現のためにユーザー情報とグループ情報を持ったテーブルを作成
- JDBCレルムで上記テーブルを使用することをGlassFishの管理ツールで定義
- デプロメント・ディスクリプタ(web.xml、sun-web.xml)の変更
- ログインJSPを作成
- 各Servletで買い物かごを識別するためにセッションのユーザーidを使用
JDBCレルムのためのテーブルを作成
ユーザーテーブルを作成
ユーザーテーブルは既に作成しています。ただし、パスワードに相当する部分がないためパスワード(pwd)のみ追加します。復習になりますが、テーブルを変更したい場合、MySQL Workbenchで[SQL Development]-[Open Connection to start Querying]-[imoshop_01](ご自身で作成されたコネクション)をダブルクリック、[Overview]-[imoshop]-[users](第6回では[user]と命名しましたが、既にmysqlスキーマに同名のテーブルがあり混乱するため改名しました)を選択し右クリックします。[Alter Table]を選択すると図1のような画面が表示されます。
下の方にある[Columns]タブを選択すると図2のような画面が表示されます。「first_name」の下をクリックすると入力可能になります。そこに「pwd」と入力します(「password」はデータベースの予約語である場合があるため避けるべきだという意見を参考にしました)。
テーブルの最後に追加しましたが、位置を変更したい場合、追加した項目を右クリックし[Move Up]または[Move Down]をクリックして位置を調整します。筆者もuser_idの下にpwdを置きたいため、[Move Up]で図3のように移動させました。
グループテーブルを作成
ユーザーとグループ(groups)は本来、多対多の関係にあるように設計した方が柔軟な作りにはなります。ここではグループテーブルにgroup_idとユーザーテーブルのuser_idを定義します。本来であれば、T字型ER手法で言う対照表を作成し、VIEWを定義する必要があるため、正確にはグループテーブルの定義にはなっていません。ここではグループidだけ管理することとし、対照表に相当するものをグループテーブルと呼んでいます。ちなみにVIEWを定義した場合、図9のユーザーテーブルとグループテーブルは同じVIEWを指定することになります。テーブルを指定しなければならないように思えますが、VIEWを指定してもエラーにはなりません。
では、グループテーブル(groups)を作成します。[MySQL Workbench]-[SQL Development]-[Open Connection to start Querying]-[imoshop_01]をダブルクリックし、[Overview]-[imoshop]を選択します。[Tables]の下の[Add Table]をダブルクリックすると図4のような画面が表示されます。Nameに「groups」と入力し、[Columns]タブをクリックします。
そのあとの設定は今まで説明してきたとおりです。設定後は図5のような画面になります。





