SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

GlassFishからアプローチするJava

GlassFishからアプローチするJava~入門編~
第7回「Webアプリケーションの作成 JDBCレルムで認証実現」

複数のユーザが同時に買い物ができるように実装する

ダウンロード サンプルコード (17.6 KB)

実現手順

 芋焼酎酒店で複数のユーザーが利用できるようにするために、以下の手順で実現します。

  1. JDBCレルムの実現のためにユーザー情報とグループ情報を持ったテーブルを作成
  2. JDBCレルムで上記テーブルを使用することをGlassFishの管理ツールで定義
  3. デプロメント・ディスクリプタ(web.xml、sun-web.xml)の変更
  4. ログインJSPを作成
  5. 各Servletで買い物かごを識別するためにセッションのユーザーidを使用

JDBCレルムのためのテーブルを作成

ユーザーテーブルを作成

 ユーザーテーブルは既に作成しています。ただし、パスワードに相当する部分がないためパスワード(pwd)のみ追加します。復習になりますが、テーブルを変更したい場合、MySQL Workbenchで[SQL Development]-[Open Connection to start Querying]-[imoshop_01](ご自身で作成されたコネクション)をダブルクリック、[Overview]-[imoshop]-[users](第6回では[user]と命名しましたが、既にmysqlスキーマに同名のテーブルがあり混乱するため改名しました)を選択し右クリックします。[Alter Table]を選択すると図1のような画面が表示されます。

図1.usersテーブル変更画面
図1.usersテーブル変更画面

 下の方にある[Columns]タブを選択すると図2のような画面が表示されます。「first_name」の下をクリックすると入力可能になります。そこに「pwd」と入力します(「password」はデータベースの予約語である場合があるため避けるべきだという意見を参考にしました)。

図2.usersテーブルカラム追加画面
図2.usersテーブルカラム追加画面

 テーブルの最後に追加しましたが、位置を変更したい場合、追加した項目を右クリックし[Move Up]または[Move Down]をクリックして位置を調整します。筆者もuser_idの下にpwdを置きたいため、[Move Up]で図3のように移動させました。

図3.usersテーブルpwd追加後画面
図3.usersテーブルpwd追加後画面

グループテーブルを作成

 ユーザーとグループ(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]タブをクリックします。

図4.groupsテーブル定義画面
図4.groupsテーブル定義画面

 そのあとの設定は今まで説明してきたとおりです。設定後は図5のような画面になります。

図5.groupsテーブル項目追加画面
図5.groupsテーブル項目追加画面

次のページ
JDBCレルムの定義

この記事は参考になりましたか?

GlassFishからアプローチするJava連載記事一覧

もっと読む

この記事の著者

川久保 智晴(カワクボ トモハル)

haruプログラミング教室(https://haru-idea.jp/)主宰。COBOL、FORTRANで13年、Javaを中心としたWeb開発で11年。3つしか言語知らないのかというとそうでもなく、sed/awk、Perl、Python, PHP,  C#, JavaScriptなども一時期は業...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4931 2010/03/17 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー