首页 > 解决方案 > jsp-如何将值发送到数据库表进行处理?

问题描述

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

截屏

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

我在数据库结构中的表有一个唯一的列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 语句来更新它。

标签: ajaxjsp

解决方案


在您的 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);

        %>  

希望这对你有帮助!


推荐阅读