gpt4 book ai didi

java - 如何将从两个表中检索的数据存储到 java/servlet/jsp 中的另一个表中

转载 作者:行者123 更新时间:2023-11-30 22:04:50 25 4
gpt4 key购买 nike

我有这三个表:

  • users:存储注册到我的站点的用户的详细信息。
  • events:存储在 Technovision 节上举行的 Activity 的详细信息。
  • registered_users:存储注册事件的用户的详细信息。

当有人点击“注册”按钮时,它应该通过链接( anchor 标记)将参数user_id 传递给名为RegisterServlet 的servlet。

RegisterServlet 中,我想从 users 表和 events 表中检索数据,以便我可以将组合的数据列存储到 registered_users 表。

我试过这样做,但在某些难以弄清楚的部分失败了。

如果有人能在这种情况下帮助我,那就太好了。

 <a href="/RegisterEvent?id=<%=Integer.parseInt(resultSet.getString("event_id")) %>">Register</a>

上面是我在 JSP 中使用链接标记将 event_id 传递给 servlet 的代码(用户单击的按钮)。

RegisterServlet.java

package com.event;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
import java.io.*;
import java.util.*;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.http.HttpSession;
import javax.servlet.http.Part;

public class RegisterEvent extends HttpServlet {

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
int i1;

HttpSession session = request.getSession();
String username = (String) session.getAttribute("uname");

String event_id = request.getParameter("id");

String fname, lname, email, colgname, event_name;
int contact;

try {

//loading drivers for mysql
Class.forName("com.mysql.jdbc.Driver");

//creating connection with the database
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/technovision", "root", "root");

String sql1 = "SELECT * FROM `users` WHERE `username`=?";

PreparedStatement ps = con.prepareStatement(sql1);

ps.setString(1, username);

ResultSet rs = ps.executeQuery();

while (rs.next()) {
fname = rs.getString("fname");
lname = rs.getString("lname");
email = rs.getString("emailid");
contact = rs.getInt("mobile");
colgname = rs.getString("colgname");
}

String sql2 = "SELECT event_name FROM events WHERE event_id=?";

PreparedStatement ps1 = con.prepareStatement(sql2);

ps1.setInt(1, Integer.parseInt(event_id));

ResultSet rs1 = ps1.executeQuery();

while (rs1.next()) {
event_name = rs1.getString("event_name");
}

String sql3 = "INSERT INTO registered_users(`fname`,`lname`,`email`,`contact`,`college_name`,`event_name`) values (?,?,?,?,?,?)";

PreparedStatement ps3 = con.prepareStatement(sql3);

ps3.setString(1, fname);
ps3.setString(2, lname);
ps3.setString(3, email);
ps3.setInt(4, contact);
ps3.setString(5, colgname);
ps3.setString(6, event_name);

i1 = ps3.executeUpdate();

if (i1 > 0) {
response.sendRedirect("register-success.jsp");
}

} catch (Exception se) {
System.out.println(se);
}

}
}

最佳答案

你得到这个错误是因为你没有设置你的属性,所以你应该使用这个:

String fname = "", lname = "", email = "", colgname = "", event_name = "";

代替这个:

String fname, lname, email, colgname, event_name;

因为您在 while(){...} 中使用它们,所以您应该初始化它们

关于java - 如何将从两个表中检索的数据存储到 java/servlet/jsp 中的另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42137660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com