jsp-如何将值发送到数据库表进行处理?

时间:2019-01-25 10:42:31

标签: ajax jsp

我是AJAX的新手,并且有一个JSP页面,如下所示:

Screenshot

新的用户名列允许我输入任何字符串,当我点击“更新用户”按钮时,它将更新数据库中的表。

我在数据库结构中的表具有一个唯一列AUSERNAME,该列存储用户名,如屏幕截图所示。单击更新按钮后,它将传递新的用户名值并更新表中的该字段。这就是我要实现的目标。

我知道我必须在我的JSP页面中进行如下所示的AJAX调用:

<script >
    function update(param) {


        var currentbal = document.getElementsByName('NewUserName' + param)[0].value;


        console.log(currentbal);

        $.ajax({
            type: "POST",
            url: "update.jsp",
            data: { name: currentbal},
            success:function( msg ) {
                alert( "Data Updated: " + msg );
            },error: function (xhr, ajaxOptions, thrownError) {
                alert(xhr.status);
                alert(thrownError);
            }
        });

    }




</script>

至于我的update.jsp页,我不太确定如何处理它并更改表。我相信我需要在其中创建一个函数,但不确定如何将值传递给它并使用sql语句对其进行更新。

1 个答案:

答案 0 :(得分:1)

在您的jsp页面中,您可以执行以下操作:

<%@page import= "java.sql.*" %>
<%@page import= "java.io.*" %>

<% 
    //getting data send from ajax request 

   String id= request.getParameter("id");
String user = request.getParameter("name"); //name for example
  //data base code
   try{
                    Class.forName("com.mysql.jdbc.Driver");
                }
                catch (ClassNotFoundException e) {
            e.printStackTrace();
                }

                Connection con = null;
                ResultSet resultSet = null;
                Statement stmt = null;
               int row=0;
 try {
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/abc","root","swati");
String sql = "UPDATE `tablename` SET `user`=? WHERE `id`=?";      //updating table
            PreparedStatement statement = con.prepareStatement(sql);
            statement.setString(1,  name); 
            statement.setString(2,  id); 
                        row = statement.executeUpdate(); 
            if (row > 0) {
               String txt="updated";
            // forwards to the message page
           }
          }
          else {
            String txt="not updated";
             }
          }
         catch (Exception ex) {
           ex.printStackTrace();
        } 

        }
      response.setContentType("text/plain");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(txt);

        %>  

希望这对您有帮助!