如何在mySQL表上插入扫描值?

问题描述 投票:1回答:2

我在如何将另一个表中的值插入新表中遇到问题。我有以下代码:

Scanner scanner1 = new Scanner(System.in);
java.sql.Statement st = conn.createStatement();
ResultSet res = st.executeQuery("SELECT * FROM flight");    
int f_id = scanner.nextInt();  
int air_id = scanner.nextInt();
          while (res.next()) {
             if (Integer.parseInt(res.getString("air_id")) == air_id && Integer.parseInt(res.getString("f_id")) == f_id) {
                if (Integer.parseInt(res.getString("f_status_f_id_s")) > 0) {
                      System.out.println("You can reserve");
                      stmt=(Statement) conn.createStatement();
                      stmt.execute("SET FOREIGN_KEY_CHECKS=0");
                            String query1= "INSERT INTO reservations" +" VALUES(1,6/6/2020,)"+air_id+"(..,..,;
                            stmt.executeUpdate(query1);

更具体地说,在行String query1= "INSERT INTO reservations" +" VALUES(1,6/6/2020,)"+air_id+"(..,..,;上,我希望air_id是我之前扫描的值,例如f_id。这是正确的语法方法吗?

java mysql
2个回答
2
投票

Prepared Statements用于该。即:

 PreparedStatement stmt= con.prepareStatement();
 stmt.execute("SET FOREIGN_KEY_CHECKS=0");
  //put ?(no of values you need to insert)
  String query1= "INSERT INTO reservations values(?,?,?)";
  stmt.setInt(1,1);//1 specifies the first parameter in the query  
  stmt.setString(2,"6/6/2020"); 
  stmt.setInt(3,air_id);//pass your variable
  stmt.executeUpdate(query1);

2
投票

您可以使用以下代码在查询中插入变量:

String query1= "INSERT INTO reservations" +" VALUES(1,6/6/2020,)"+air_id=@air_id+"(..,..,;

谢谢,希望对您有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.