話說今天不知道是抽風了仍是失魂了,在用phpmyadmin刪除測試數據時,居然將整個表刪除了:php
package com.nerve.sql.reload; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.util.ArrayList; import java.util.List; import org.nerve.util.NumberUtil; /** * @project: cloudOffice_swing * @file: ReloadWorker.java * @package: com.nerve.sql.reload * @description: * 將二進制日誌導出的文件中相應表的操做記錄提出出來 * @author: 集成顯卡 1053214511@qq.com * @date&time: Jan 23, 2014 * @change log: */ public class ReloadWorker { public void read(List<String> orgF, String targetF, String table) throws Exception{ BufferedWriter bw = new BufferedWriter(new FileWriter(targetF, true)); for(String or:orgF){ BufferedReader br = new BufferedReader(new FileReader(or)); String t = null; String t2 = null; table = table.toUpperCase(); while((t=br.readLine())!=null){ t2 = t.toUpperCase(); /* * 若是是update操做,直接提出 */ if(t2.startsWith("UPDATE "+table)){ bw.append(t+";\n"); } /* * 若是是insert語句,由於有一些舊服務器的數據 * 因此要先執行delete操做 */ else if(t2.startsWith("INSERT INTO "+table)){ String ids = t2.substring(t2.lastIndexOf(",")); bw.append("delete from "+table+" where id="+NumberUtil.toDigital(ids)+";\n"); bw.append(t+";\n"); } /* * sql語句後面都要加 ; ,由於原來沒有,不加的話,在導入到數據庫時,出錯 */ } br.close(); } bw.flush(); bw.close(); } public static void main(String[] args) throws Exception{ long sd = System.currentTimeMillis(); ReloadWorker w = new ReloadWorker(); List<String> orgs = new ArrayList<String>(); orgs.add("C:/Users/IBM_ADMIN/Desktop/000015.txt"); orgs.add("C:/Users/IBM_ADMIN/Desktop/000016.txt"); orgs.add("C:/Users/IBM_ADMIN/Desktop/000017.txt"); orgs.add("C:/Users/IBM_ADMIN/Desktop/000018.txt"); orgs.add("C:/Users/IBM_ADMIN/Desktop/000019.txt"); String targetS = "C:/Users/IBM_ADMIN/Desktop/000017_sql.txt"; w.read(orgs, targetS, "task"); System.out.println("DONE, on " +(System.currentTimeMillis() - sd)/1000+" s"); } }