当前位置: 首页 > 知识库问答 >
问题:

如何使用jsp和servlet更新数据库中的多条记录[重复]

燕雨石
2023-03-14
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
   <%@page import ="techpanel.Getters" %>
    <%@page import="java.util.Vector" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Panel Details</title>
</head>

<%Vector<Getters> vec=(Vector<Getters>)request.getAttribute("vec"); %>

<h1>Technical Panel</h1>



<center>
<table width="80" id="customers" id="Add">


<tr>
<form action="UpdateTechpanelDetails" method="Post">

<td>Employee ID</td>

<th><u>First Name</td>

<th><u>Last Name</u></th>
<th><u>Mobile No</u></th>

<th><u>Email ID</u></th>

<th><u>Skills</u></th>

</tr>

 <% 
for(int i=0;i<vec.size();i++)
 {%>

<tr>
 <td><input type="text" name="EmployeeID" value=" %=vec.elementAt(i).getEmployeeID()%>"/> </td>
 <td><input type="text" name="FirstName" value="<%=vec.elementAt(i).getFirstName()%>"/> </td>
<td><input type="text" name="LastName" value="<%=vec.elementAt(i).getLastName()%>"/></td>
<td><input type="text" name="MobileNo" value="<%=vec.elementAt(i).getMobileNo()%>"/></td>
<td><input type="text" name="EmailID" value="<%=vec.elementAt(i).getEmailID()%>"/></td>
<td><input type="text" name="PanelPersonSkills" value="<%=vec.elementAt(i).getPanelPersonSkills()%>"/></td>
</tr>
<tr>

}
</table>
<br><br>
<center><table>
<tr>
 <td><input type="submit"    value="Update"  /></td></form>
<td><form action="RetrievingTechpanelDetails"><input type="submit" name="button"  value="Back"></form></td>
</tr>
</table>
</body>
</html>
package techpanel;

import java.io.IOException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;


public class UpdateTechpanelDetails extends HttpServlet {

    public UpdateTechpanelDetails() {
        super();
        }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {



         String Eid = request.getParameter("EmployeeID");
         System.out.println(Eid);
        String FName = request.getParameter("FirstName");
        System.out.println(FName);
        String LName = request.getParameter("LastName");
        System.out.println(LName);
        String MNo = request.getParameter("MobileNo");
        System.out.println(MNo);
        String EID = request.getParameter("EmailID");
        System.out.println(EID);
        String Skills = request.getParameter("PanelPersonSkills");
        System.out.println(Skills);

        String msg=("Data Updated");
        Connection con=null; 
         PreparedStatement st=null;
       try {
          Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306?user=root&password=kartheek");
         String sql = " UPDATE techpanel1.techpaneldetails SET EmployeeID=?,FirstName=?,LastName=?,MobileNo=?,EmailID=?,PanelPersonSkills=? WHERE EmployeeID=?";

        con.setAutoCommit(false);
          st = con.prepareStatement(sql);

         st.setString(1, Eid); 
         st.setString(2, FName ); 
         st.setString(3, LName); 
         st.setString(4, MNo ); 
         st.setString(5, EID );
         st.setString(6, Skills );
         st.setString(7, Eid); 



        st.executeUpdate();

        con.commit();
        request.setAttribute(".", msg);
         con.close();
         st.close();
                RequestDispatcher rd = request.getRequestDispatcher("AddingTechpanelDetails.jsp");
              rd.include(request, response);
        }

        catch (Exception e) {
         e.printStackTrace();

        }

       }


    private int getInitParameter() {
        // TODO Auto-generated method stub
        return 0;
    }

  }

我已经从向量数组中的数据库中获取值(vec.elementAt(i). getServeID(),vec.elementAt(i). getFirstName())到一个文本框,这是可编辑的格式(输入类型=文本名称=员工ID值=


共有2个答案

苏君昊
2023-03-14

使用批处理您可以插入或更新记录数量尝试此代码

 String sql = "update people set firstname=? , lastname=? where id=?";


PreparedStatement preparedStatement = null;
try{
    preparedStatement =
            connection.prepareStatement(sql);

preparedStatement.setString(1, "Gary");
preparedStatement.setString(2, "Larson");
preparedStatement.setLong  (3, 123);

preparedStatement.addBatch();

preparedStatement.setString(1, "Stan");
preparedStatement.setString(2, "Lee");
preparedStatement.setLong  (3, 456);

preparedStatement.addBatch();

int[] affectedRecords = preparedStatement.executeBatch();

}finally {
    if(preparedStatement != null) {
        preparedStatement.close();
    }
}
钦景胜
2023-03-14
匿名用户

要获取所有文本框的值,请使用request。getParameterValues('name'),这将返回具有相同“name”的元素的所有值。getPrameterValues('EmployeeID')将所有名为“EmployeeID”的文本框值返回到字符串数组EmployeeID中,您可以迭代该数组并从textBox中获取每个值。

要更新多行,请尝试使用prepared stations addBatch()方法,然后使用executeBatch()方法执行批处理语句

 类似资料:
  • 问题内容: 大家好,我为用户创建了一个jsp页面,他们可以在其中更新现有详细信息,并在提交数据库时更新记录。 1.> Accountdetails.java 2.> success.jsp 3.> web.xml 这里的问题是当填写所有字段并单击提交时,它无法更新它。 它进入其他部分,显示更新数据失败。 当我sys出它显示SQL是 我也试过 至 但仍然无法更新。 请帮助我纠正错误,因为我现在不知道

  • 这里是将从其中删除记录的index.jsp文件。 index.jsp

  • 在我的用户表中,我需要在凌晨12点将“每日”列恢复为默认值“1”。 是否有一种方法可以让我在每天上午12点将值恢复为默认值1或将100万条记录的值更新为1,而不延迟任何时间(意味着所有用户的“每日”列将同时更新)? 注:“每日”列用于确定用户是否已“用完”其每日单击。用户每天有1次机会点击按钮(有点像奖励框)。单击按钮后,每日将更新为“0”,直到第二天才能再次单击按钮。

  • 在我的Java web应用程序中,我使用了servlet(控制器)、JSP(视图)和POJO类。我每10秒运行一次应用程序,并将下拉列表中选定URL的更新值存储到数据库中。在我的servlet中,我获取这些值并转发到JSP,JSP将显示所选URL的更新值。我用过 在这里,我的JSP看起来像:在顶部框架中我有下拉列表。我选择一个URL并单击提交按钮一次。该选定选项(URL)的结果显示在底部框架中。第

  • 这是我正在接收的数据,如果阵列中不存在id,则希望添加新记录,如果阵列中没有id,则还希望更新记录 我的模型:课堂课程 课堂主题 类用户 这是通过PostMan从Rails API接收的数组[{"title":"Topic Name","path_url":"https://resource-asws-path-url" }, { "id": 2311,"title":"Topic Name","

  • 数据文件:-已编辑- 我正在使用ANES 2016时间序列研究数据。使用以下代码和类别对缺失数据进行编码,以表明其缺失的原因: -1.不适用 -2.在单独文件或编码版本中提供的文本响应将包含在未来版本中 3.受限 4.错误 5.中断,足够的部分信息 6.没有选举后采访 7.没有帖子数据,由于信息不完整而删除 8.不知道 9.拒绝 我想在我的数据中使用case_when和Tidyverse对面的NA