代码之家  ›  专栏  ›  技术社区  ›  Mohamed Nuur

JavaPraveReScript语法

  •  0
  • Mohamed Nuur  · 技术社区  · 14 年前

    这是Java中准备好的语句的正确语法:

    INSERT INTO table (id, version, data)
      VALUES (?, ?, ?)
      ON DUPLICATE KEY UPDATE 
        data = IF(version > values(version), data, values(data)),
        version = IF(version > values(version), version, values(version))
    

    我正在寻找最好的方式来插入或更新数百万行从一个for循环在Java中利用PraveRealEdt的AdppStand。

    1 回复  |  直到 5 年前
        1
  •  2
  •   Thomas Mueller    14 年前

    如果SQL语句正确,则需要将其包装如下:

    String sql = ...
    PreparedStatement prep;
    prep = conn.prepareStatement(sql);
    prep.setInt(1, x);
    prep.setString(2, y);
    prep.setString(3, z);
    prep.execute();
    

    要使用addbatch,请使用:

    String sql = ...
    PreparedStatement prep;
    prep = conn.prepareStatement(sql);
    for (...) {
        prep.setInt(1, x);
        prep.setString(2, y);
        prep.setString(3, z);
        prep.addBatch();
    }
    prep.execute();