さらに追記します。
lang
1if (request.getParameter("deleteFlag") == "0") { 2 // 更新処理 3 return this.doUpdate(request, con); 4 } else { 5 // 削除処理 6 return this.doDelete(request, con); 7 } 8
としてみたのですが更新の場合、削除の場合ともにDELETE文を呼んでしまいます。deleteFlagには初期値で0が入っています。
追記です。
lang
1if (request.getParameter("update") != null) { 2 // 更新処理 3 return this.doUpdate(request, con); 4 } else { 5 // 削除処理 6 return this.doDelete(request, con); 7 }
の部分の("update") != null)を("deleteFlag") == 0)
とするとうまくいくと思うのですがString型とint型のため
値をこのまま入れることが出来ません。
うまく入れるためにはどうしたらよろしいでしょうか。
###前提・実現したいこと
こんにちは。
質問をさせてください。
ただいまSQLに接続するJavaのソースを書いておりまして、DELETEを実行した際に
UPDATEを実行するようになってしまっております。
おそらく45行目のあたりからが特に怪しいのですが、どのように直してもうまくいきません。
もしお分かりになる方がおられましたら、長いソースになりますがよろしくお願いいたします。かなり省略しています。
###ソースコード
lang
1public class CustomerDetail extends AbstractBizLogic { 2 private static final long serialVersionUID = 1L; 3 4 /** リクエストURL */ 5 private String requestPageUrl = "/page/customerDetail.jsp"; 6 7 /** 一覧表示画面URL */ 8 private String customerListUrl = "/page/customerList.jsp"; 9 10 /** 11 * コンストラクタ 12 */ 13 public CustomerDetail() { 14 super(); 15 } 16 17 /** 18 * @see common.AbstractBizLogic#getRequestPageUrl() 19 */ 20 protected String getRequestPageUrl() { 21 return requestPageUrl; 22 } 23 24 /** 25 * @see common.AbstractBizLogic#execute(HttpServletRequest,HttpServletResponse, 26 * Connection) 27 */ 28 protected ProcessResult execute(HttpServletRequest request, 29 HttpServletResponse response, Connection con) throws Exception { 30 if (request.getParameter("backList") != null) { 31 // 一覧へ戻る 32 ProcessResult result = new ProcessResult(); 33 result.setUrl(customerListUrl); 34 result.setNormalEndFlg(true); 35 36 super.setSessionAttribute("id", ""); 37 super.setSessionAttribute("name", ""); 38 super.setSessionAttribute("kana", ""); 39 super.setSessionAttribute("gender", ""); 40 41 return result; 42 } 43 44 if (request.getParameter("processType") == null) { 45 // 登録画面初期表示 46 return createInsertModoResult(); 47 } else if (request.getParameter("processType").equals("disp")) { 48 // 更新・削除初期表示 49 return this.doDispDetails(request, con); 50 } else if (request.getParameter("processType").equals("insert")) { 51 // 登録処理 52 return this.doInsert(request, con); 53 } else if (request.getParameter("processType").equals("update")) { 54 if (request.getParameter("update") != null) { 55 // 更新処理 56 return this.doUpdate(request, con); 57 } else { 58 // 削除処理 59 return this.doDelete(request, con); 60 } 61 } else { 62 ProcessResult result = new ProcessResult(); 63 result.setUrl(requestPageUrl); 64 result.setNormalEndFlg(false); 65 66 // 処理モードをセットする。 67 super.setSessionAttribute("processType", ""); 68 super.setErrMsg("不正なアクセス"); 69 return result; 70 } 71 } 72 73 /** 74 * ユーザーマスタ情報を検索し詳細画面表示します。 75 * 76 * @param request 77 * リクエスト情報 78 * @param con 79 * コネクション 80 * @return 処理結果DTO 81 * @throws Exception 82 */ 83 private ProcessResult doDispDetails(HttpServletRequest request, 84 Connection con) throws Exception { 85 ProcessResult result = new ProcessResult(); 86 String id = request.getParameter("id"); 87 List<CustomerDto> retList = this.getCustomerList(id, con); 88 if (retList.size() == 0) { 89 super.setErrMsg("データがすでに削除された可能性があります。再度検索してください。"); 90 // 一覧検索画面に戻す。 91 result.setUrl(customerListUrl); 92 result.setNormalEndFlg(false); 93 94 return result; 95 } 96 CustomerDto dto = retList.get(0); 97 super.setSessionAttribute("id", dto.getId()); 98 super.setSessionAttribute("name", dto.getName()); 99 100 101 // 処理モードをセットする。 102 super.setSessionAttribute("processType", "update"); 103 result.setUrl(requestPageUrl); 104 result.setNormalEndFlg(true); 105 return result; 106 } 107 108 /** 109 * ユーザーマスタの新規登録を行います。 110 * 111 * @param request 112 * リクエスト情報 113 * @param con 114 * コネクション 115 * @return 処理結果DTO 116 * @throws Exception 117 */ 118 private ProcessResult doInsert(HttpServletRequest request, Connection con) 119 throws Exception { 120 ProcessResult result = new ProcessResult(); 121 122 String id = request.getParameter("id"); 123 String name = request.getParameter("name"); 124 125 126 boolean errExistsFlg = false; 127 // 必須チェック 128 if (StringUtils.isBlank(id)) { 129 super.setErrMsg("IDは必ず入力してください。"); 130 errExistsFlg = true; 131 } 132 if (StringUtils.isBlank(name)) { 133 super.setErrMsg("名前は必ず入力してください。"); 134 errExistsFlg = true; 135 } 136 if (StringUtils.isBlank(kana)) { 137 super.setErrMsg("フリガナは必ず入力してください。"); 138 errExistsFlg = true; 139 } 140 if (StringUtils.isBlank(height)) { 141 super.setErrMsg("身長は必ず入力してください。"); 142 errExistsFlg = true; 143 } 144 if (StringUtils.isBlank(weight)) { 145 super.setErrMsg("体重は必ず入力してください。"); 146 errExistsFlg = true; 147 } 148 if (StringUtils.isBlank(birthday)) { 149 super.setErrMsg("生年月日は必ず入力してください。"); 150 errExistsFlg = true; 151 } 152 153 154 155 if (errExistsFlg) { 156 // 入力チェックでエラーの場合は処理終了 157 result.setNormalEndFlg(false); 158 return result; 159 } 160 /*** 161 * //ID存在チェック List<CustomorDto> retList = this.getCustomerList(id, con); 162 * if (retList.size() == 0) { 163 * super.setErrMsg("データがすでに削除された可能性があります。再度検索してください。"); 164 * result.setNormalEndFlg(false); return result; } 165 */ 166 167 CustomerDto paramDto = new CustomerDto(); 168 paramDto.setId(id); 169 paramDto.setName(name); 170 paramDto.setKana(kana); 171 paramDto.setGender(gender); 172 173 174 CustomerUpdateDao updateDao = new CustomerUpdateDao(); 175 updateDao.setParam(paramDto); 176 updateDao.execute(con); 177 178 super.setSessionAttribute("id", id); 179 super.setSessionAttribute("name", name); 180 super.setSessionAttribute("kana", kana); 181 182 183 result.setMsg("削除が完了しました。"); 184 result.setUrl(requestPageUrl); 185 result.setNormalEndFlg(true); 186 187 188 return result; 189 190 } 191 192 /** 193 * ユーザーマスタの削除を行います。 194 * 195 * @param request 196 * リクエスト情報 197 * @param con 198 * コネクション 199 * @return 処理結果DTO 200 * @throws Exception 201 */ 202 private ProcessResult doDelete(HttpServletRequest request, Connection con) 203 throws Exception { 204 ProcessResult result = new ProcessResult(); 205 result.setUrl(requestPageUrl); 206 // 処理モードをセットする。 207 super.setSessionAttribute("processType", "update"); 208 209 String id = request.getParameter("id"); 210 String name = request.getParameter("name"); 211 String kana = request.getParameter("kana"); 212 213 /*** 214 * ID存在チェック List<CustomorDto> retList = this.getUserList(id, con); if 215 * (retList.size() == 0) { 216 * super.setErrMsg("データがすでに削除された可能性があります。再度検索してください。"); 217 * result.setNormalEndFlg(false); return result; } 218 */ 219 220 CustomerDto paramDto = new CustomerDto(); 221 paramDto.setId(id); 222paramDto.setAddress(address); 223 paramDto.setPhone(phone); 224 paramDto.setDeleteFlag(deleteFlag); 225 226 CustomerDeleteDao deleteDao = new CustomerDeleteDao(); 227 deleteDao.setParam(paramDto); 228 deleteDao.execute(con); 229 230 super.setSessionAttribute("id", id); 231 super.setSessionAttribute("phone", phone); 232 result.setMsg("削除が完了しました。"); 233 result.setUrl(requestPageUrl); 234 result.setNormalEndFlg(true); 235 236 return result; 237 } 238 239 /** 240 * ユーザーマスタの削除を行います。 241 * 242 * @param request 243 * リクエスト情報 244 * @param con 245 * コネクション 246 * @return 処理結果DTO 247 * @throws Exception 248 */ 249 private ProcessResult createInsertModoResult() { 250 // 新規登録表示 251 ProcessResult result = new ProcessResult(); 252 result.setUrl(requestPageUrl); 253 result.setNormalEndFlg(true); 254 255 super.setSessionAttribute("id", ""); 256 super.setSessionAttribute("name", ""); 257 super.setSessionAttribute("kana", ""); 258 super.setSessionAttribute("phone", ""); 259 // 処理モードをセットする。 260 super.setSessionAttribute("processType", "insert"); 261 return result; 262 } 263 264 /** 265 * ユーザーマスタを検索しリストをかえします。 266 * 267 * @param id 268 * ユーザーID 269 * @param con 270 * コネクション 271 * @return ユーザーマスタDTOリスト 272 * @throws Exception 273 */ 274 275 private List<CustomerDto> getCustomerList(String id, Connection con) 276 throws Exception { 277 CustomerDto paramDto = new CustomerDto(); 278 paramDto.setId(id); 279 280 CustomerSelectDao dao = new CustomerSelectDao(); 281 dao.setParam(paramDto); 282 dao.execute(con); 283 return dao.getResultList();
###補足情報(言語/FW/ツール等のバージョンなど)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/10 10:21