обновить запись базы данных через html-страницу с помощью сервлетов - PullRequest
0 голосов
/ 15 мая 2019

мой запрос будет обновлять запрос в другом случае, если записи не обновляются в базе данных помогите мне выйти из этой ситуации Я не получил никаких ошибок после нажатия кнопки обновления, запись базы данных не вставлена ​​в базу данных

// imports ...

public class RequestData extends HttpServlet {
    public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
        PrintWriter out = response.getWriter();
        response.setContentType("text/html");
        out.print("<html>");
        out.print("<title>DataRetreving</title>");
        out.print("<body>");
        out.print("<table border=5 width=50% height=50% bgcolor=magenta align=center>");
        out.print("<tr>");
        out.print("<th><b>id</b></th>");
        out.print("<th><b>name</b></th>");
        out.print("<th><b>address</b></th>");
        out.print("<th><b>action</b></th>");
        out.print("<th><b>actionupdate</b></th>");
        out.print("</tr>");
        Driver driver = new OracleDriver();
        try {
            DriverManager.registerDriver(driver);
            Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/XE", "system",
                    "india124");
            Statement pst = connection.createStatement();
            if(request.getParameter("action")!=null && "delete".equals(request.getParameter("action")))
            {
                int id=Integer.parseInt(request.getParameter("id"));
                pst.executeUpdate("delete from employee where id="+id); 
            }
            else if(request.getParameter("id") != null
                    && request.getParameter("name") != null
                    && request.getParameter("address") != null              
                    && request.getParameter("update") != null 
                    && !"update".equals(request.getParameter("actionupdate")))
            {
              int id = Integer.parseInt(request.getParameter("id"));
              String name = request.getParameter("name");
              String address = request.getParameter("address");
              pst.executeQuery("insert into employee(id,name,address)"+"values("+id+",'"+name+"','"+address+"')");
            }
            else if(request.getParameter("actionupdate")!=null 
                    && "update".equals(request.getParameter("actionupdate"))) {
              int id = Integer.parseInt(request.getParameter("id")); 
              String name = request.getParameter("name"); 
              String address =request.getParameter("address");
              pst.executeUpdate("update employee set address='"+address+"',name='"+name+"'where id="+id+""); 
            } 

            ResultSet rst=pst.executeQuery("select *from employee");
            while (rst.next()) 
            {
                out.print("<tr>");
                out.print("<td align=center bgcolor=yellow><b> " + rst.getInt("id") + "</b></td>");
                out.print("<td align=center><b>" + rst.getString("name") + "</b></td>");
                out.print("<td align=center><b>" + rst.getString("address") + "</b></td>");
                out.print("<form align=center action=\"./requestdata\">");
                out.print("<td align=center bgcolor=yellow><a href=\"http://localhost:8082/RequestDataDemo/requestdata?id="
                  +rst.getInt("id")+"&action=delete\">DELETE</a></td>");
                out.print("<td align=center bgcolor=yellow><a href=\"http://localhost:8082/RequestDataDemo/requestdata?id="
                          +rst.getInt("id")+"&name="+rst.getString("name")+"&address="+rst.getString("address")+"&actionupdate=update\">UPDATE</a></td>");
                out.print("</tr>");
            }
            out.print("</table>");
            out.print("<br><br>");

            if(request.getParameter("actionupdate")!=null && "update".equals(request.getParameter("actionupdate"))) {
                 out.print("<form align=center action=\"./requestdata\">");
                 out.print("enter id  :<input type=\" text\" name = \" id \" value="+request.getParameter("id")+"><br><br>");
                 out.print("enter name: <input type=\"text\" name = \"name\" value="+request.getParameter("name")+"><br><br>");
                 out.print("enter address:<input type=\"text\" name = \"address \" value="+request.getParameter("address")+"><br><br>");
                 out.print(" <input type=\"submit\" value =\"update\"><br><br>");
                 out.print("</form>");
            }
            else
            {
              out.print("<form align=center action=\"./requestdata\">");
              out.print("eneter id  :<input type=" + "text" + " name = " + "id><br><br>");
              out.print("eneter name: <input type=" + "text" + " name = " + "name><br><br>");
              out.print("eneter address:<input type=" + "text" + " name = " + "address><br><br>");
              out.print(" <input type=" + "submit" + " value = " + "submit><br><br>");
              out.print(" <input type=" + "reset><br><br>");
              /* out.print("<input type='submit' value='delete'>"); */
              out.print("</form>");
            }
            out.print("</body>");
            out.print("</html>");
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        out.close();
    }
}

мой запрос будет обновлен, но записи в базе данных не обновляются помогите мне выйти из этой ситуации Я не получил никаких ошибок после нажатия кнопки обновления, запись базы данных не вставлена ​​в базу данных

1 Ответ

0 голосов
/ 15 мая 2019

Я согласен со всеми комментариями, что вы должны рефакторинг этого кода.Но для первой попытки, я думаю, важно, чтобы она работала.

Я думаю, у вас есть небольшая логическая проблема: что именно вы отправляете, когда вставляете новую запись?Я не смог найти эту часть.

Я предполагаю, что вы хотите, чтобы блок вставки работал, поэтому это условие:

else if(request.getParameter("id") != null&&request.getParameter("name")!=null&&request.getParameter("address")!=null &&request.getParameter("update")!=null &&!"update".equals(request.getParameter("actionupdate") ))

, чтобы быть истинным.Но если вы посмотрите на конец строки, вы захотите, чтобы параметр «update» присутствовал, а «actionupdate» отличался от «update».Но вы не устанавливаете это в своем коде.Таким образом, это условие всегда будет ложным, поэтому вставка никогда не вызывается.

Когда вы нажимаете кнопку отправки, на сервер отправляется параметр submit = "".Таким образом, вы можете сказать, какая кнопка была нажата.Поэтому, возможно, добавьте кнопку отправки со значением = "вставить" и проверьте, присутствует ли она для ввода в блок INSERT.

Снова попробуйте сделать это, пересмотрев все ваши условия и параметры, и посмотрите, когда / еслиони установлены и когда они верны или нет.И после этого просто потратьте некоторое время на рефакторинг и отработку лучших техник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...