【问题标题】:SQL update query is not working in my Java programSQL 更新查询在我的 Java 程序中不起作用
【发布时间】: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(); 下方会发生什么?

标签: java mysql jsp


【解决方案1】:

查看 cmets,我假设您的代码没有执行,这就是您没有任何错误或警报的原因。 if(request.getParameter("update") != null) 将评估为 false 的可能原因之一。

检查请求是否有更新参数。

【讨论】:

  • 更新按钮被添加到edit.jsp。并且有问题的代码来自editprocess.jsp。我使用了从 edit.jsp 到 editprocess.jsp 的更新按钮
  • if(request.getParameter("update") != null) 评估真假?
  • if(request.getParameter("update") != null) 评估为假
  • 我得到了这个异常:java.lang.StringIndexOutOfBoundsException: String index out of range: -19 at java.lang.String.substring(String.java:1967) at org.netbeans.modules.editor .java.JavaCodeTemplateFilter$1$1.run(JavaCodeTemplateFilter.java:126) at org.netbeans.modules.parsing.impl.TaskProcessor.callUserTask(TaskProcessor.java:609) at org.netbeans.modules.parsing.api.ParserManager$UserTaskAction .run(ParserManager.java:153) at org.netbeans.modules.parsing.api.ParserManager$UserTaskAction.run(ParserManager.java:137)
  • 表示更新参数不在请求中检查请求是否退出或示例请求对象
猜你喜欢
  • 2021-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
  • 1970-01-01
  • 2013-06-23
  • 2015-09-05
  • 1970-01-01
相关资源
最近更新 更多