gpt4 book ai didi

java - 我尝试在 mysql 表中插入数据

转载 作者:行者123 更新时间:2023-11-29 11:10:57 25 4
gpt4 key购买 nike

我想通过单个查询将数据插入到 2 个表中。 bt 它给出了错误

我的代码如下所示。

public class Trains extends HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
response.setContentType("text/html");
PrintWriter out=response.getWriter();
int tid=Integer.parseInt(request.getParameter("tid"));
String tname=request.getParameter("tname");
String ttype=request.getParameter("ttype");
String stncode=request.getParameter("stn_code");
String stnname=request.getParameter("stn_name");
String availtime=request.getParameter("Avail_time");
String depttime=request.getParameter("Dep_time");
String halttime=request.getParameter("Halt_time");
String dist=request.getParameter("distance");

String[] avail_day=request.getParameterValues("week");

try {
String query="INSERT INTO Train_info(Train_ID,Train_Name,Train_Type,Runs_On) values(?,?,?,?); INSERT INTO Train_route(stn_code,stn_name,arrival_time,Destn_time,Halt_time,Distance) values(?,?,?,?,?,?)";
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Railway","root","mysql123");
PreparedStatement ps=con.prepareStatement(query);

ps.setInt(1, tid);
ps.setString(2, tname);
ps.setString(3, ttype);
ps.setString(4, stncode);
ps.setString(5, stnname);
ps.setString(6, availtime);
ps.setString(7, depttime);
ps.setString(8, halttime);
ps.setString(9, dist);
for(int i=0;i<avail_day.length;i++){
ps.setString(10, avail_day[i]);
}

int i=ps.executeUpdate();
if(i>0){
out.println("Successfully Registration");
response.sendRedirect("TrainRoute.jsp");
}
else{
out.println("Registration failed");
response.sendRedirect("Error.java");
}
}
catch(ClassNotFoundException ce){
ce.printStackTrace();
}
catch(Exception e){
out.println(e);
}
}
}

错误是:-

java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO Train_route(stn_code,stn_name,arrival_time,Destn_time,Halt_time,Dist' at line 1

最佳答案

请参阅:Java - Mysql - Multiple query

语法错误消息中的INSERT INTO会调用查询字符串中的第二个插入内容。与大多数 MySQL 驱动程序一样,MySQL JDBC 驱动程序每次调用 Connection.preparedStatement() 时仅接受一个查询。

您需要重构代码以使用两个准备好的语句,每个表一次。

如果您习惯于使用其他品牌和型号的 SQL 表服务器,此限制可能会让您陷入困境。

关于java - 我尝试在 mysql 表中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40561963/

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