代码之家  ›  专栏  ›  技术社区  ›  Julia

JDBC,将从查询中获得的多个记录插入到其他表中

  •  1
  • Julia  · 技术社区  · 16 年前

    我需要一次将多个记录插入到MySQL数据库中。我要做的是 SELECT 在一张表上,从我的申请表中拿出准备好的声明。我必须做的是将这些结果插入到另一个临时表中。

    String sqlquery = "select * from table1 where arg1 = ?";
    PreparedStatement statement;
    statement = con.prepareStatement(sql);
    
    
    ArrayList<String>termlist = index.getTermList();
    for (int i = 0; i < termlist.size(); i++) 
    {
        String search = termlist.get(i);
        statement.setString(1,search);
    
        ResultSet rs1 = statement.executeQuery(); //
    }
    

    这套可能很大。在每次迭代之后,将这个结果集以某种方式插入到另一个表中的最快方法是什么?

    如果有方法的话,如何将这个结果传递给某个存储过程?

    2 回复  |  直到 16 年前
        1
  •  2
  •   Mark Byers    16 年前

    你可以让数据库为你做这些工作:

    INSERT INTO othertable
    SELECT col1, col2 FROM table1
    WHERE arg1 = ?
    

    这样,您就不必向已经存在的数据库发送数据副本。

        2
  •  0
  •   Mitch Wheat    16 年前

    如果将参数值的逗号分隔列表传递到存储过程中并使用 IN (val1, val2, ...) 条款。不知道MySQL对in子句长度的限制是什么。

    这里有一个 split 实施。