【发布时间】:2020-02-12 09:17:04
【问题描述】:
我正在尝试更新 SQL 数据库中的记录。所以我在我的程序中编写了 Update 查询,但它不起作用。我在 Stack Overflow 上尝试了许多解决方案,例如 con.commit() 和 con.setAutoCommit(false)。我也将它添加到程序中,但它没有反映数据库的变化。
<%@page import="java.io.File"%>
<%@page import="java.sql.*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%
String z_id = request.getParameter("zid");
String first_Name = request.getParameter("firstname");
String last_Name = request.getParameter("lastname");
String mail_i_d = request.getParameter("mailid");
String d_iv = request.getParameter("division");
String de_pt = request.getParameter("department");
String cost_centercode = request.getParameter("costcentercode");
String doc_num = request.getParameter("documentnumber"); String doc_Name = request.getParameter("documentname");
...
String file_Name = "";
String folder_Name = "allfiles";
String pa_th = folder_Name + File.separator + file_Name;
Timestamp add_ed_date = new Timestamp(System.currentTimeMillis());
if(request.getParameter("update") != null){
Connection con = null;
PreparedStatement ps = null;
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dmsqms","root","");
String sql = "update dmsfiles set firstname=?,lastname=?,mailid=?,division=?,department=?,costcentercode=?,document_number=?,document_name=?,document_type=?,document_category=?,document_classification=?,authorised_by=?,fromdate=?,todate=?,document_level=?,document_general=?,serial_number=?,revision_number=?,issuer=?,status=?,filename=?,path=?,added_date=? where zid='"+z_id+"'";
ps = con.prepareStatement(sql);
ps.setString(1,z_id);
ps.setString(2,first_Name);
ps.setString(3,last_Name);
ps.setString(4,mail_i_d);
ps.setString(5,d_iv);
ps.setString(6,de_pt);
ps.setString(7,cost_centercode);
ps.setString(8,doc_num);
ps.setString(9,doc_Name);
...
ps.setString(22,file_Name);
ps.setString(23,pa_th);
ps.setTimestamp(24, null);
int i = ps.executeUpdate();
if(i > 0)
{
con.commit();
con.setAutoCommit(false);
//out.print("Record Updated Successfully");
out.println("alert('Record Updated Successfully');");
}
else
{
//out.print("There is a problem in updating Record.");
out.println("alert('There is a problem in updating Record.');");
}
}
catch(SQLException sql)
{
request.setAttribute("error", sql);
out.println(sql);
}
}
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<title>editprocess jsp Page</title>
</head>
<body>
<a href="home.jsp" class="btn btn-info">Home</a>
</body>
</html>
【问题讨论】:
-
“不工作”是什么意思?有没有抛出异常?
-
没有发生错误。没有发生异常。屏幕上只显示主页按钮。
-
数据库中有指定z_id的行吗?
-
@akshayapandey 是的,我有
-
如果删除 if else 语句并将提交放在
ps.executeUpdate();下方会发生什么?