diff --git a/nms_sync/src/com/nms/thread/SyncSlaveToMasterThread.java b/nms_sync/src/com/nms/thread/SyncSlaveToMasterThread.java index 91949c7..f9aab30 100644 --- a/nms_sync/src/com/nms/thread/SyncSlaveToMasterThread.java +++ b/nms_sync/src/com/nms/thread/SyncSlaveToMasterThread.java @@ -61,15 +61,18 @@ public class SyncSlaveToMasterThread implements Runnable{ final List data = Db.use(url.toString()) .find("select "+columns.toString()+" from " + record.getStr("table_name") + " where " + record.getStr("id_name") + " > ? order by "+record.getStr("id_name")+" asc limit " + record.getInt("batch_size"), - record.getInt("last_id")); + record.getLong("last_id")); //logger.info("分库同步到主库新增数据信息为"+JSON.toJSONString(data)); if (data != null && data.size() > 0) { final Object lastInsertId = data.get(data.size() - 1).get(record.getStr("id_name")); + StringBuffer ssss=new StringBuffer(); if(record.getInt("mode").equals(2)) { for(Record entity:data) { + ssss.append(entity.get("ID")+","); entity.remove(record.getStr("id_name")); } } + System.out.println(ssss.toString()); // 针对监测结果表的id值 自动生成处理 if("detection_info_new".equals(record.getStr("table_name"))) { Db.use(url.toString()).tx(new IAtom() { @@ -152,10 +155,10 @@ public class SyncSlaveToMasterThread implements Runnable{ return Db.use("masterDataSource").tx(new IAtom() { @Override public boolean run() throws SQLException { - List insertIds = new ArrayList(); + List insertIds = new ArrayList(); StringBuffer insertStr = new StringBuffer(); for (int i = 0; i < data.size(); i++) { - insertIds.add(data.get(i).getInt("target_id")); + insertIds.add(data.get(i).getLong("target_id")); if (i == 0) { insertStr.append("?"); } else { @@ -173,7 +176,7 @@ public class SyncSlaveToMasterThread implements Runnable{ insertData.set("sync_status",1); //设置同步数据所在数据库的id以及所在原来表的id 用于修改和删除 -1为中心或主库 insertData.set("old_id",insertData.getLong(record.getStr("id_name"))); - insertData.set("db_id", syncDbInfo.getInt("id")); + insertData.set("db_id", syncDbInfo.getLong("id")); } insertData.set(record.getStr("id_name"), seqData.getLong("seqId")); } @@ -200,7 +203,7 @@ public class SyncSlaveToMasterThread implements Runnable{ while (flag) { final List datas = Db.use(url.toString()).find( " select * from table_event_log where table_name = '" + record.getStr("table_name") - + "' and id > " + record.getInt("last_id") + " and event = " + + "' and id > " + record.getLong("last_id") + " and event = " + record.getInt("event") + " order by id asc limit " + record.getInt("batch_size")); //logger.info("分库同步到主库数据的修改或者删除数据信息为"+JSON.toJSONString(datas)); if (datas != null && datas.size() > 0) { @@ -210,11 +213,11 @@ public class SyncSlaveToMasterThread implements Runnable{ return Db.use("masterDataSource").tx(new IAtom() { @Override public boolean run() throws SQLException { - List updateIds = new ArrayList(); + List updateIds = new ArrayList(); List deleteRecords=new ArrayList(); StringBuilder handleStr=new StringBuilder(); for (int i = 0; i < datas.size(); i++) { - updateIds.add(datas.get(i).getInt("target_id")); + updateIds.add(datas.get(i).getLong("target_id")); if(i==0) { handleStr.append("?"); }else { @@ -252,9 +255,9 @@ public class SyncSlaveToMasterThread implements Runnable{ } 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")); + deleteRecord.set(record.getStr("id_name"), datas.get(i).getLong("target_id")); //如果是针对 event_record_library 下两行数据使用 不是则仅仅赋值 无意义 - deleteRecord.set("old_id", datas.get(i).getInt("target_id")); + deleteRecord.set("old_id", datas.get(i).getLong("target_id")); deleteRecord.set("db_id", syncDbInfo.get("id")); deleteRecords.add(deleteRecord); } diff --git a/nms_sync/src/com/nms/thread/SyncThread.java b/nms_sync/src/com/nms/thread/SyncThread.java index a05222d..7767931 100644 --- a/nms_sync/src/com/nms/thread/SyncThread.java +++ b/nms_sync/src/com/nms/thread/SyncThread.java @@ -114,10 +114,10 @@ public class SyncThread implements Runnable { return Db.use(url.toString()).tx(new IAtom() { @Override public boolean run() throws SQLException { - List insertIds = new ArrayList(); + List insertIds = new ArrayList(); StringBuffer insertStr = new StringBuffer(); for (int i = 0; i < data.size(); i++) { - insertIds.add(data.get(i).getInt("target_id")); + insertIds.add(data.get(i).getLong("target_id")); if (i == 0) { insertStr.append("?"); } else { @@ -174,11 +174,11 @@ public class SyncThread implements Runnable { return Db.use(url.toString()).tx(new IAtom() { @Override public boolean run() throws SQLException { - List updateIds = new ArrayList(); + List updateIds = new ArrayList(); List deleteRecords=new ArrayList(); StringBuilder handleStr=new StringBuilder(); for (int i = 0; i < datas.size(); i++) { - updateIds.add(datas.get(i).getInt("target_id")); + updateIds.add(datas.get(i).getLong("target_id")); if(i==0) { handleStr.append("?"); }else { @@ -210,9 +210,9 @@ public class SyncThread implements Runnable { } 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")); + deleteRecord.set(record.getStr("id_name"), datas.get(i).getLong("target_id")); //如果是针对 event_record_library 下两行数据使用 不是则仅仅赋值 无意义 - deleteRecord.set("old_id", datas.get(i).getInt("target_id")); + deleteRecord.set("old_id", datas.get(i).getLong("target_id")); deleteRecord.set("db_id", -1); deleteRecords.add(deleteRecord); }