summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordefault <default@DESKTOP-7FEGRP2>2018-10-09 14:45:58 +0800
committerdefault <default@DESKTOP-7FEGRP2>2018-10-09 14:45:58 +0800
commitac756d0149434209d6e3e54f4e28b92fced6e91b (patch)
tree18c1c64a35b71c144b8cd232ad42cf4e190a3f91
parent94f6853323dac772778320aefaf1ae530795f82a (diff)
批量修改、删除操作修改为批处理 废弃使用in语法
-rw-r--r--nms_sync/src/com/nms/thread/SyncSlaveToMasterThread.java31
-rw-r--r--nms_sync/src/com/nms/thread/SyncThread.java31
2 files changed, 28 insertions, 34 deletions
diff --git a/nms_sync/src/com/nms/thread/SyncSlaveToMasterThread.java b/nms_sync/src/com/nms/thread/SyncSlaveToMasterThread.java
index 603b76f..74b54c0 100644
--- a/nms_sync/src/com/nms/thread/SyncSlaveToMasterThread.java
+++ b/nms_sync/src/com/nms/thread/SyncSlaveToMasterThread.java
@@ -151,12 +151,13 @@ public class SyncSlaveToMasterThread implements Runnable{
@Override
public boolean run() throws SQLException {
List<Integer> updateIds = new ArrayList<Integer>();
- StringBuffer handleStr = new StringBuffer();
+ List<Record> deleteRecords=new ArrayList<Record>();
+ StringBuilder handleStr=new StringBuilder();
for (int i = 0; i < datas.size(); i++) {
updateIds.add(datas.get(i).getInt("target_id"));
- if (i == 0) {
+ if(i==0) {
handleStr.append("?");
- } else {
+ }else {
handleStr.append(",?");
}
}
@@ -182,22 +183,18 @@ public class SyncSlaveToMasterThread implements Runnable{
}
logger.info("分库同步主库修改数据任务完成");
} else if (record.getInt("event") == 3) {
+ for (int i = 0; i < datas.size(); i++) {
+ Record deleteRecord=new Record();
+ deleteRecord.set(record.getStr("id_name"), datas.get(i).getInt("target_id"));
+ //如果是针对 event_record_library 下两行数据使用 不是则仅仅赋值 无意义
+ deleteRecord.set("old_id", datas.get(i).getInt("target_id"));
+ deleteRecord.set("db_id", -1);
+ deleteRecords.add(deleteRecord);
+ }
if(record.getStr("table_name").equals("event_record_library")) {
- updateIds.clear();
- handleStr.delete(0,handleStr.length());
- for (int i = 0; i < datas.size(); i++) {
- updateIds.add(datas.get(i).getInt("target_id"));
- updateIds.add(syncDbInfo.getInt("id"));
- if (i == 0) {
- handleStr.append("(?,?)");
- } else {
- handleStr.append(",(?,?)");
- }
- }
- Db.use("masterDataSource").update("delete from event_record_library where (old_id,db_id) in ("+handleStr+")",updateIds.toArray());
+ Db.use("masterDataSource").batch("delete from event_record_library where old_id=? and db_id=?","old_id,db_id",deleteRecords,record.getInt("batch_size"));
}else {
- Db.use("masterDataSource").update("delete from " + record.getStr("table_name") + " where "+record.getStr("id_name")+" in ("
- + handleStr + ") ", updateIds.toArray());
+ Db.use("masterDataSource").batch("delete from " + record.getStr("table_name") + " where "+record.getStr("id_name")+"=?",record.getStr("id_name"),deleteRecords,record.getInt("batch_size"));
}
logger.info("分库同步主库删除数据任务完成");
}
diff --git a/nms_sync/src/com/nms/thread/SyncThread.java b/nms_sync/src/com/nms/thread/SyncThread.java
index 0141f0f..d1a535d 100644
--- a/nms_sync/src/com/nms/thread/SyncThread.java
+++ b/nms_sync/src/com/nms/thread/SyncThread.java
@@ -162,12 +162,13 @@ public class SyncThread implements Runnable {
@Override
public boolean run() throws SQLException {
List<Integer> updateIds = new ArrayList<Integer>();
- StringBuffer handleStr = new StringBuffer();
+ List<Record> deleteRecords=new ArrayList<Record>();
+ StringBuilder handleStr=new StringBuilder();
for (int i = 0; i < datas.size(); i++) {
updateIds.add(datas.get(i).getInt("target_id"));
- if (i == 0) {
+ if(i==0) {
handleStr.append("?");
- } else {
+ }else {
handleStr.append(",?");
}
}
@@ -193,22 +194,18 @@ public class SyncThread implements Runnable {
}
logger.info("分库对主库修改操作的数据同步任务完成");
} else if (record.getInt("event") == 3) {
+ for (int i = 0; i < datas.size(); i++) {
+ Record deleteRecord=new Record();
+ deleteRecord.set(record.getStr("id_name"), datas.get(i).getInt("target_id"));
+ //如果是针对 event_record_library 下两行数据使用 不是则仅仅赋值 无意义
+ deleteRecord.set("old_id", datas.get(i).getInt("target_id"));
+ deleteRecord.set("db_id", -1);
+ deleteRecords.add(deleteRecord);
+ }
if(record.getStr("table_name").equals("event_record_library")) {
- updateIds.clear();
- handleStr.delete(0,handleStr.length());
- for (int i = 0; i < datas.size(); i++) {
- updateIds.add(datas.get(i).getInt("target_id"));
- updateIds.add(-1);
- if (i == 0) {
- handleStr.append("(?,?)");
- } else {
- handleStr.append(",(?,?)");
- }
- }
- Db.use(url.toString()).update("delete from event_record_library where (old_id,db_id) in ("+handleStr+")",updateIds.toArray());
+ Db.use(url.toString()).batch("delete from event_record_library where old_id=? and db_id=?","old_id,db_id",deleteRecords,record.getInt("batch_size"));
}else {
- Db.use(url.toString()).update("delete from " + record.getStr("table_name") + " where "+record.getStr("id_name")+" in ("
- + handleStr + ") ", updateIds.toArray());
+ Db.use(url.toString()).batch("delete from " + record.getStr("table_name") + " where "+record.getStr("id_name")+"=?",record.getStr("id_name"),deleteRecords,record.getInt("batch_size"));
}
logger.info("分库对主库删除操作的数据同步完成");
}