如何使用servlet更新用户信息mysql

Posted

技术标签:

【中文标题】如何使用servlet更新用户信息mysql【英文标题】:How to update user information mysql using servlet 【发布时间】:2018-03-10 09:59:08 【问题描述】:

目前我正在为使用 mysql 的用户写入数据库,用户有几个字段,我希望他们能够使用表单更新他们当前的用户配置文件。在占位符中,我想显示他们当前的信息。提交应更改提供的信息并更新表格。

<h2>Update your profile</h2>
<div class="form">
    <form action="/updateprofile">
        <input type="text" name="Email_Address" placeholder="Email Address">
        <input type="text" name="First_Name" placeholder="First Name">
        <input type="text" name="Last_Name" placeholder="Last Name">
        <input class="button" type="submit">
    </form>
</div>

这是 servlet 代码并非所有代码都写入 sqldb

protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException 

    //Obtain submitted form data
    String firstName = req.getParameter("First_Name");
    String lastName = req.getParameter("Last_Name");
    String username = req.getParameter("User_Name");
    String email = req.getParameter("Email_Address");
    String password =req.getParameter("Password");

    try 
    //Setup the Database datasource
    Context    ctx = new InitialContext();
    Context env = ( Context )ctx.lookup( "java:comp/env" );
    DataSource ds = ( DataSource )env.lookup( "jdbc/carRentalSystem");
    Connection conn = ds.getConnection();

    //Prepare the SQL statmenet to insert the values
    PreparedStatement stmt = conn.prepareStatement("INSERT INTO userdetails(First_Name, Last_Name, Email_Address, Password, User_Name)  VALUES (?,?,?,?,?)");
    stmt.setString(1, firstName);
    stmt.setString(2, lastName);
    stmt.setString(3, email);
    stmt.setString(4, password);
    stmt.setString(5, username);

    //Execute the insert
    stmt.executeUpdate();
    conn.close();

    //Dispatch into success page
    RequestDispatcher requestDispatcher = req.getRequestDispatcher("login.html");
    requestDispatcher.forward(req, res);

    catch(Exception e)
        System.out.println(e);
    

【问题讨论】:

您的 servlet 代码在哪里?你在服务器端做了什么? 用 servlet 代码更新 UPDATE 在哪里? 首先,你的sql语句是INSERT,不是UPDATE,其次,我建议你在表单声明中指定方法,method="PSOT" 【参考方案1】:

我将其更改为更新而不是插入,这是一个很大的愚蠢错误,我很抱歉花了这么长时间。

【讨论】:

以上是关于如何使用servlet更新用户信息mysql的主要内容,如果未能解决你的问题,请参考以下文章

如何在.xml中配置Servlet信息

如何使用 MySQL GUI 工具使字段为 NULL?

mysql如何让时间属性不自动更新

如何才能使图形化管理MySQL更轻松(一)

jsp+servlet+mysql实现的停车场管理系统(分为普通用户和管理员,实现注册登录留言管理停车信息管理IC卡管理用户管理出入场管理等)

请教一个mysql 存储过程的问题?