前提・実現したいプログラム
現在、JavaとStruts2を使用してプログラムの作成を行っておりますが、ロジックで行き詰まりました。
下記のやり方は無駄に複雑であり、綺麗な方法ではないということは理解していますが、
このようにやらなければいけない状況にありますので、アドバイスいただけると幸いです。
5つの内、どのスポーツを経験したことがあるかデータベースに記録するプログラムです。
画面にはスポーツ名の書かれたチェックボックスが5つあり、ユーザーが任意の数を選択して送信します。
ここでは2つテーブルを使用します。
【usersテーブル】
id name sports
1 山田 00000
2 鈴木 00000
3 佐藤 00000
4 田中 00000
【sportsテーブル】
id name
1 野球
2 サッカー
3 テニス
4 ゴルフ
5 バスケットボール
usersテーブルのsportsカラムには文字列の00000が初期値として挿入されており、
0(未経験)1(経験)として判断します。
00000の1の位(右端)からスポーツIDの1,2,3,4,5となってます。下記のような感じです。
users <sportsカラム> 0 | 0 | 0 | 0 | 0 ※0(未経験)1(経験)
sports <idカラム> 5 | 4 | 3 | 2 | 1
例えば、山田さんが「野球」と「ゴルフ」を選択した場合、データベースは下記のようになります。
【usersテーブル】
id name sports
1 山田 01001
2 鈴木 00000
3 佐藤 00000
4 田中 00000
教えていただきたいこと
現在はチェックボックスで選択されたスポーツidをActionクラスで配列で受け取っています。
その配列を利用し、Actionクラスで下記のようなロジックを組みたいと思っていますがいい案が浮かびません。
private String number = "00000";
private Collection<Integer> checkBoxSports;
配列が[2,3]の場合、00110のように2,3の位を1に変更した5桁の文字列をnumberに再代入する
回答6件
あなたの回答
tips
プレビュー