前提・実現したいこと
Java初心者です。
Eclipseツールを使用し,oracleDBと接続してJavaで簡単な個人情報取り扱いWebシステムを製造しています。
実現したいこととして、DBに個人情報(IDと名前)を登録して、作成したWebシステムから個人情報IDを入力すると、名前が表示されて削除ボタンを押すと削除が出来るシステムを作ります。
発生している問題・エラーメッセージ
現状としては、IDに1を入力して、次画面にIDに紐づけた名前が表示されて名前をクリックして、次画面に名前が表示されて削除ボタンを押すと、次画面に削除が完了しましたというページが表示されています。
ここまで聞くと成功しているように見えますが、後述する問題で出来ずに、とりあえずJavaのSQLに、DELETE FROM PRIVATE WHERE REGIST_NUM='1'と指定しているので、成功できています。
本当はIDのところに最初の画面で入力された値を持っていかないといけないので、SQL文に変数を入れたのですが、コンソールにnullとなってしまいます。今回はここをどうにかして値を持っていきたいです。
該当のソースコード
Java
public class Delete_Delete { public Delete_Delete() { System.out.println("View=Delete_Result constract"); } // 検索-検索画面の検索ボタン押下処理 public void Delete_delete(smsSearchForm form, Model model) { SpringMvcConfig springMvcConfig = new SpringMvcConfig(); smsInfoDaoImpl SmsInfoDaoImpl = new smsInfoDaoImpl(springMvcConfig.getDataSource()); System.out.println("View=Delete_Delete.java"); String sql = Create_resultSQL(form); System.out.println("削除用"); System.out.println("実行します"); SmsInfoDaoImpl.delete(sql); System.out.println("実行されたよ"); model.addAttribute("DBList"); System.out.println("引継ぎ"); //SQL作成 String sql2 = Create_resultSQL(form); //SQL実行 List<Map<String,Object>> List = SmsInfoDaoImpl.search(sql2); //DB取得確認用 List.forEach(System.out::println); //DB取得結果を次画面へ引き継ぎ model.addAttribute("DBList", List); return; } // 検索SQL作成処理 public String Create_resultSQL(smsSearchForm form) { String sql ="DELETE FROM PRIVATE (" + "REGIST_NUM ," + ") WHERE (" + "'" + form.getRegist_num() ; System.out.println(sql); return sql; } }
jsp
<script type="text/javascript"> //ユーザクリック時の登録番号取得・設定とページ遷移処理 function userClicku(REGIST_NUM){ //登録番号をsmsSearchFormに設定 //本ページではRegist_numが使われないので要素から作成する var Regist_num = document.createElement("input"); Regist_num.name = "Regist_num"; Regist_num.type = "hidden"; Regist_num.value = REGIST_NUM; smsSearchForm.appendChild(Regist_num); //submitでPOST送信してページ遷移 smsSearchForm.submit(); } </script> <input type="button" value="削除" onclick="userClicku(${data.REGIST_NUM});"/>
試したこと
form.getRegist_num()に値を持っていこうとしたら、削除ボタンを押してコンソールにはnullと表示されました。
補足情報(FW/ツールのバージョンなど
eclipse
oracleDB
ojdbc8
spring
今回テラテイルを使うのが初めてでよく分からずにコードを抜粋したので、追加で見たいものがあれば申してください。
よろしくお願いいたします。