如何动态储存每行的id到session连接数据库添加到表

这是点完成可以获取订单的id的页面


<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'pc2.jsp' starting pagetitle>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    

  head>
  
  <body>
<% request.setCharacterEncoding("utf-8");
 String pcid="";

     String title=request.getParameter("title");
  Class.forName("com.mysql.jdbc.Driver"); //加载驱动程序类
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jz?useSSL=false","root","root");
Statement pstmt=conn.createStatement();
ResultSet rs=pstmt.executeQuery("select * from dd where zt=1 ");%>
<center> <table border="1px"> <br>
<span><button style="float:right"><a href="pc1.jsp">查看a>button>span>
<br><tr><td>编号td><td>账号td><td>电话td><td>地址td><td>时间td><td>类目td><td>金额td><td>备注td><td>状态td><td>操作td>tr>
<% while(rs.next()){
pcid=rs.getString(1);
%>

<tr><td><%=rs.getString(1) %>td><td><<%=rs.getString(2) %>">td><td><<%=rs.getString(3) %>">td><td><<%=rs.getString(4) %>">td><td><%=rs.getString(5) %>td>
<td><%=rs.getString(6) %>td><td><%=rs.getString(7) %>td><td><%=rs.getString(8) %>td><td><%if(rs.getInt("zt")==0){out.print("未接单");}else{out.print("已接单");} %>td>
<td> <a href="sc.jsp?pcid=<%=pcid%>">完成a>td> tr>
<%}%> 
table>center>
<% 
rs.close();

conn.close();
%>


  body>
html>

这是sc.jsp


  <% request.setCharacterEncoding("utf-8");
 String pcid="";
 %>

"post" ACTION="sc1.jsp"> 商 品 图片:"file" NAME="image">
"submit" value="提交">
<% session.setAt ```java 这是后台操作页面连接数据库添加记录到表 <% request.setCharacterEncoding("utf-8"); String id=request.getParameter("id"); String i=(String)session.getAttribute("pcid"); String filename=request.getParameter("image"); FileInputStream str= new FileInputStream(filename); Class.forName("com.mysql.jdbc.Driver"); //加载驱动程序类 Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/jz?useSSL=false","root","root"); PreparedStatement pstmt=con.prepareStatement("insert into pc values(?,?,?)"); pstmt.setString(1,id); pstmt.setString(2,i); pstmt.setBinaryStream(3,str,str.available()); int a=pstmt.executeUpdate(); //将数据存入数据库 if(a!=0){ request.getRequestDispatcher("pc1.jsp?title="+id+"").forward(request,response); } %>

该回答引用ChatGPT-3.5

为了动态储存每行的id到session连接数据库添加到表,可以在pc2.jsp页面的完成按钮的链接中添加一个参数,该参数值为订单id,如下所示:

<a href="sc.jsp?pcid=<%=pcid%>">完成</a>

然后,在sc.jsp页面中,可以使用以下代码从请求参数中获取订单id,并将其存储到session中:

<% 
String pcid = request.getParameter("pcid");
session.setAttribute("pcid", pcid);
%>

在这之后,当用户提交表单时,可以从session中获取之前存储的订单id,将其与用户提交的其他表单数据一起添加到数据库中。这个功能可以在sc1.jsp页面中实现。可以使用以下代码从session中获取订单id:

String i = (String)session.getAttribute("pcid");

然后,将获取的订单id与用户提交的其他表单数据一起添加到数据库中,如下所示:

PreparedStatement pstmt = con.prepareStatement("insert into pc values(?,?,?)");
pstmt.setString(1, id);
pstmt.setString(2, i);
pstmt.setBinaryStream(3, str, str.available());
int a = pstmt.executeUpdate();

这个例子中,假设订单id存储在名为"pcid"的session属性中,而订单id和其他表单数据都将插入名为"pc"的表中。同时,插入的记录包括三个字段:id、pcid和image。其中,image字段是二进制类型,表示用户提交的图片数据。在这个例子中,图片数据是从名为"image"的表单字段中获取的,其数据类型为文件流。