質問編集履歴

2

connの変数を宣言しているDataSourceManager\.javaの部分を追加しました

2016/05/29 09:42

投稿

Tatsuro_186
Tatsuro_186

スコア10

test CHANGED
File without changes
test CHANGED
@@ -262,6 +262,54 @@
262
262
 
263
263
 
264
264
 
265
+ DataSourceManager.java
266
+
267
+ package bz.action;
268
+
269
+ import java.sql.Connection;
270
+
271
+ import java.sql.SQLException;
272
+
273
+
274
+
275
+ import javax.naming.Context;
276
+
277
+ import javax.naming.InitialContext;
278
+
279
+ import javax.naming.NamingException;
280
+
281
+ import javax.sql.DataSource;
282
+
283
+
284
+
285
+ public class DataSourceManager {
286
+
287
+ /**コネクション*/
288
+
289
+ protected Connection conn;
290
+
291
+ /**コンストラクタ*/
292
+
293
+ public DataSourceManager() {
294
+
295
+
296
+
297
+ try{
298
+
299
+ Context ctx = new InitialContext();
300
+
301
+ DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/test");
302
+
303
+ conn = ds.getConnection();
304
+
305
+ } catch (NamingException | SQLException e){
306
+
307
+ }
308
+
309
+ }
310
+
311
+ }
312
+
265
313
 
266
314
 
267
315
  ###試したこと

1

UserDAO\.javaのソースコードも追加いたしました。よろしくお願いします。

2016/05/29 09:42

投稿

Tatsuro_186
Tatsuro_186

スコア10

test CHANGED
File without changes
test CHANGED
@@ -38,6 +38,8 @@
38
38
 
39
39
  ###該当のソースコード
40
40
 
41
+ LoginServlet.java
42
+
41
43
  package bz.action;
42
44
 
43
45
 
@@ -152,6 +154,112 @@
152
154
 
153
155
 
154
156
 
157
+ UserDAO.java
158
+
159
+ package bz.action.inaba;
160
+
161
+
162
+
163
+ import java.sql.PreparedStatement;
164
+
165
+ import java.sql.ResultSet;
166
+
167
+ import java.sql.SQLException;
168
+
169
+
170
+
171
+ import bz.action.DataSourceManager;
172
+
173
+
174
+
175
+ /**
176
+
177
+ * USERテーブルをIDとパスワードで検索する
178
+
179
+ * <pre>
180
+
181
+ * 引数(IDとパスワード)で完全一致検索する
182
+
183
+ * 該当するデータがある場合はtrue,データがない場合はfalseを返す
184
+
185
+ * </pre>
186
+
187
+ * @param id ログインID
188
+
189
+ * @param password パスワード
190
+
191
+ * @return 検索結果の有無
192
+
193
+ */
194
+
195
+ public class UserDAO extends DataSourceManager {
196
+
197
+ public boolean selectByIdAndPassword(String id,String password) {
198
+
199
+
200
+
201
+ StringBuffer sb = new StringBuffer();
202
+
203
+ sb.append("select");
204
+
205
+ sb.append(" COUNT(*) 'COUNT'");
206
+
207
+ sb.append(" from");
208
+
209
+ sb.append(" USER");
210
+
211
+ sb.append(" where");
212
+
213
+ sb.append(" USER_ID = ?");
214
+
215
+ sb.append(" and PASSWORD = ?");
216
+
217
+
218
+
219
+ try{
220
+
221
+ PreparedStatement ps = conn.prepareStatement(sb.toString());
222
+
223
+ ps.setString(1, id);
224
+
225
+ ps.setString(2, password);
226
+
227
+
228
+
229
+ ResultSet rs = ps.executeQuery();
230
+
231
+ if(rs.next()){
232
+
233
+ return rs.getInt("COUNT") == 1;
234
+
235
+ }
236
+
237
+ } catch (SQLException e){
238
+
239
+ // TODOエラーメッセージを表示する
240
+
241
+ }finally{
242
+
243
+ try{
244
+
245
+ conn.close();
246
+
247
+ } catch (SQLException e) {
248
+
249
+ // TODOエラーメッセージを表示する
250
+
251
+ }
252
+
253
+ }
254
+
255
+ return false;
256
+
257
+
258
+
259
+ }
260
+
261
+ }
262
+
155
263
 
156
264
 
157
265