質問編集履歴
4
情報の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -62,7 +62,7 @@
|
|
62
62
|
|
63
63
|
}
|
64
64
|
|
65
|
-
//誕生
|
65
|
+
//誕生月が入力されていれば処理を実施
|
66
66
|
|
67
67
|
if (user.getBirthday()!=null) {
|
68
68
|
|
@@ -86,7 +86,7 @@
|
|
86
86
|
|
87
87
|
if (user.getType()!=0) {
|
88
88
|
|
89
|
-
//名前も誕生
|
89
|
+
//名前も誕生月も空欄だった場合はwhere、どちらかもしくは両方入力されていたらAND
|
90
90
|
|
91
91
|
if(!flag){
|
92
92
|
|
@@ -122,7 +122,15 @@
|
|
122
122
|
|
123
123
|
② ★で示す、?に対応するパラメータインデックス値はどのように決めればよいでしょうか。
|
124
124
|
|
125
|
-
具体的に悩む点は、名前だけ空欄の場合、名前も誕生
|
125
|
+
具体的に悩む点は、名前だけ空欄の場合、名前も誕生月も空欄の場合、誕生月だけ空欄の場合などどこが空欄のまま検索されるかで?の個数も変わるので、例えば名前だけ空欄にするとインデックス範囲は2までだと怒られます。
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2).
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
?の個数が選択次第で変わる状態でどうパラメータインデックス値を当て込めばいいかがわかりません。
|
126
134
|
|
127
135
|
|
128
136
|
|
3
情報の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
jspのフォーム画面の検索項目3つ(氏名、誕生
|
5
|
+
jspのフォーム画面の検索項目3つ(氏名、誕生月、職種)に入力された値をサーブレットで取得し、SQL文のwhere句以降に連結してmysqlデータベースのテーブル(usertable)から検索結果を取得したいです。
|
6
6
|
|
7
7
|
|
8
8
|
|
2
誤記の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
② AND検索をする
|
14
14
|
|
15
|
-
③
|
15
|
+
③ 検索項目が空欄の場合は、その項目は絞り込み対象外とする。
|
16
16
|
|
17
17
|
④ 全て空欄の場合、全レコードを取得する
|
18
18
|
|
1
誤記の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -70,13 +70,13 @@
|
|
70
70
|
|
71
71
|
if(!flag){
|
72
72
|
|
73
|
-
sql += " WHERE birthday like ?"; //
|
73
|
+
sql += " WHERE birthday like ?"; //名前が空欄の時はこの?が1番目
|
74
74
|
|
75
75
|
flag = true;
|
76
76
|
|
77
77
|
}else{
|
78
78
|
|
79
|
-
sql += " AND birthday like ?";
|
79
|
+
sql += " AND birthday like ?"; //名前が入力されればこの?は2番目
|
80
80
|
|
81
81
|
}
|
82
82
|
|
@@ -94,7 +94,7 @@
|
|
94
94
|
|
95
95
|
}else{
|
96
96
|
|
97
|
-
sql += " AND type like ?";
|
97
|
+
sql += " AND type like ?";
|
98
98
|
|
99
99
|
}
|
100
100
|
|