我需要使用批处理执行upsert处理大量数据。如果它们是新记录,我需要插入记录,如果已经存在,则需要更新。
我能够插入或更新,但不能同时执行。
有人可以帮我吗?
String sqlInsert = "INSERT INTO " + tablename + " (Group_ID,Group_Name,Created_Date) VALUES(?,?,?)";
PreparedStatement insertGroups = con.prepareStatement(sqlInsert);
String sqlUpdate = "UPDATE " + tablename + " SET Group_ID=?, Group_Name=?, Created_Date=? WHERE Group_ID=?";
PreparedStatement updateGroups = con.prepareStatement(sqlUpdate);
int count = 0;
for(Map.Entry<String, String> entry:map.entrySet())
{
insertGroups.setString(1, entry.getKey());
insertGroups.setString(2, entry.getValue());
insertGroups.setTimestamp(3, date);
insertGroups.addBatch();
if(++count % batch == 0)
{
insertGroups.executeBatch();
}
insertGroups.executeBatch();
有人可以告诉我该怎么做吗?