Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java在jdbc中只插入每个循环的一行_Java_Mysql_Jdbc - Fatal编程技术网

使用java在jdbc中只插入每个循环的一行

使用java在jdbc中只插入每个循环的一行,java,mysql,jdbc,Java,Mysql,Jdbc,我有两个表,其中我需要使用特定的批处理为每个客户机循环,并更新到另一个表。下面是我的代码 client Table ---------- client_id 1 2 3 batch_meta_data_id Table ------------ client_id batch_id 1 12 1 13 2 14 2 15 2 16 3 17 Statement st

我有两个表,其中我需要使用特定的批处理为每个客户机循环,并更新到另一个表。下面是我的代码

client Table
----------
client_id  
1
2
3

batch_meta_data_id Table
------------
client_id batch_id
1           12
1           13
2           14
2           15
2           16
3           17



Statement stmt = null;
stmt = conn.createStatement();
 sql = "SELECT client_id FROM client";
      ResultSet rs1 = stmt.executeQuery(sql);   
      while(rs1.next()){  
          if(rs1.next()){
              stmt = conn.createStatement();

              sql = "SELECT batch_meta_data_id FROM batchmetadata WHERE client_id = "+rs1.getInt("client_id");
              ResultSet batchSql = stmt.executeQuery(sql);  

              if(batchSql.next()){
                  stmt = conn.createStatement();
                  String sql1 = "INSERT INTO METRICS (client_id, batch_id, count)"
                           + "VALUES ( '"+rs1.getInt("client_id")+"','"+batchSql.getInt("batch_meta_data_id")+"',(SELECT count(*) FROM typist  where  client_id = '"+rs1.getInt("client_id")+"' and batch_meta_data_id = '"+batchSql.getInt("batch_meta_data_id")+"'))";
                  stmt.executeUpdate(sql1);     
              }
              }
      }
在这里,它只插入每个客户机的第一批,其他客户机的批不会循环。 如何解决这个问题?

在这段代码中

while(rs1.next()){  
      if(rs1.next()){
您正在递增两次

在此代码中

while(rs1.next()){  
      if(rs1.next()){
您正在递增两次

它不应该是
while(batchSql.next())
?它不应该是
while(batchSql.next())