SHOEISHA iD

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

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

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

GlassFishからアプローチするJava

GlassFishからアプローチするJava~入門編~
第5回「Webアプリケーションの作成 MySQL Workbenchを使う」

買い物かごへの追加機能の実装

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

basketテーブルを変更、basket_itemテーブルとuserテーブルを作成

 買い物かごの1つの銘柄を格納するbasketテーブルができました。ただし、これではどの行が誰の買い物かごの品か判別できません。しかも、meigaraテーブルと銘柄名と単価が重複してしまいます。今回は認証機能を持っていませんが、第7回のためにユーザIDの項目が必要となります。

 また、銘柄名と単価はmeigaraテーブルから取得できるため不要です。これはmeigaraテーブルのidを保持すればよさそうです。basketテーブルと言いつつも、basketに入っている銘柄の情報が入っているのもしっくりしません。basketテーブルにはユーザidと買い物かごのidがあれば十分です。

 買い物かごの中身は別のテーブルbasket_itemで管理することにします。basket_itemテーブルにはid、basketテーブルのid、meigaraテーブルのid、本数(quantity)を持つことにします。ユーザidもどこかに格納する必要があります。第7回の認証機能で必要になるuserテーブルも作ることにします。今回はuserテーブルにはユーザid、ユーザ姓、ユーザ名だけで十分であり、1ユーザのみ追加します。

 上記の変更をWorkbenchのSQL Developmentを使って実現します。復習になりますが、NetBeansで[サービスウィンドウ]-[データベース]-[MySQL サーバー]を選択、右クリックし[管理ツールを実行]を選択すると、MySQL Workbenchが起動します。左側のSQL Developmentの[Open Connection to start Querying]のimoshop_01コネクションをクリックすると、[home]タブの隣に[SQL Editor]タブができます。Overviewの下に4つのスキーマがあるはずです。その中の[imoshop]タブをクリックすると、imoshopスキーマのTables、Views、Routinesが表示されます。

 Tablesにはbasketとmeigaraテーブルが存在します。basketテーブルをダブルクリックすると図6のように[basket(1)]というタブができます。まだ中身がないので空っぽの状態です。タブの上に[SQL Statements]があり、自由にSQL文を発行できます。basketのidは買い物かごのidとして残します。残りのカラムは不要であるため削除します。削除するには図7のようにSQL文を記述し、メニューから[Query]-[Execute]を選択するとSQLが実行されます。

図6.変更前basketテーブル
図6.変更前basketテーブル
図7.basketテーブル、カラム削除SQL
図7.basketテーブル、カラム削除SQL

 次にbasketテーブルにuser_idを追加します。図8がuser_idカラムを追加するためのSQL文です。新しくbasket_itemテーブルとuserテーブルを作成します。作成手順は「basketテーブルを作成」で説明したとおりです。図9がbasket_itemテーブル、図10がuserテーブルです。

図8.basketテーブル、カラム追加SQL
図8.basketテーブル、カラム追加SQL
図9.basket_itemテーブル
図9.basket_itemテーブル
図10.userテーブル
図10.userテーブル

次のページ
ImoshochuShop.jspの修正

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

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/4900 2010/03/03 14:00

イベント

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

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

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

メールバックナンバー