【发布时间】:2018-03-07 08:06:31
【问题描述】:
大家好,当我尝试更新数据库中的任何记录时,它显示已成功更新,但是当我检查数据库时它尚未更新。
代码中没有错误,但它不起作用。任何人都可以研究一下并指出代码中的问题。
我正在尝试使用电话号码作为唯一值来更新用户名。
谢谢。
Updatelogin.html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action ="update" method="post">
phone : <input type ="text" name ="phone" /> </br>
Username : <input type ="text" name ="uname"/> </br>
<input type ="submit" value = "update">
</form>
</body>
</html>
Update.java
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class update
*/
@WebServlet("/update")
public class update extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public update() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException{
processRequset (request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequset (request,response);
}
public void processRequset(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException{
response.setContentType("text/html;charset=UTF-8");
String phone =request.getParameter("phone");
String username =request.getParameter("uname");
PrintWriter out = response.getWriter();
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/register","root","toor");
PreparedStatement pstmt=con.prepareStatement(
"update headwy set uname =? where phone=?");
pstmt.setString(1,phone);
pstmt.setString(2,username);
pstmt.executeUpdate();
out.print("You are successfully update...");
pstmt.close();
con.close();
}
catch (Exception e2) {System.out.println(e2);
}
}
}
【问题讨论】:
-
@ScaryWombat 实际上,自动提交通常默认设置为 true(我认为),因此 OP 可能不必调用
commit()。但除此之外,我想不出为什么更新不会抛出异常,但数据没有显示出来。
标签: java mysql servlets jdbc sql-update