sql指令碼格式化為程式碼的工具
阿新 • • 發佈:2019-01-06
由於工作中經常需要將大段的sql指令碼轉化為程式碼,入
select *
from dual
轉化為
" select *"
+" from dual\n"的形式。存在大量重複勞動。於是便寫了個工具減少勞動。
首先將下面程式碼編譯
package com.zs.tools; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; public class SqlFormate { public static void main(String []args){ String srcPath="C:\\Users\\MBENBEN\\Desktop\\sql.txt"; String destPath="C:\\Users\\MBENBEN\\Desktop\\sqlformat.txt"; if(args!=null&&args.length>=1&&args[0]!=null){ srcPath=args[0]; } if(args!=null&&args.length>=2&&args[1]!=null){ destPath=args[1]; } BufferedReader br=null; File f = new File(destPath); BufferedWriter bw=null; try{ f.createNewFile(); br = new BufferedReader(new InputStreamReader(new FileInputStream(srcPath))); bw = new BufferedWriter(new FileWriter(f,false)); String data = null; int linecount=0; while((data = br.readLine())!=null) { System.out.println(data); if(linecount==0){ data="\" "+data+"\\n\""; }else{ data="+\" "+data+"\\n\""; } bw.write(data); bw.newLine(); linecount++; } }catch(IOException e){ e.printStackTrace(); }finally{ if (br != null) { try { br.close(); } catch (IOException e1) { } } if (bw != null) { try { bw.close(); } catch (IOException e1) { } } } } }
根據需要修改
預設的原始檔和目標檔案路徑
String srcPath="C:\\Users\\MBENBEN\\Desktop\\sql.txt";
String destPath="C:\\Users\\MBENBEN\\Desktop\\sqlformat.txt";
也可以傳遞引數執行。第一個為原始檔的路徑,第二個引數是目標路徑
然後我將編譯的檔案放入D:\javaclasses目錄中,D:\javaclasses\com\zs\tools便有了SqlFormate.class檔案。
下面編寫bat指令碼
新建一個文字文件寫入
@echo on
set JAVA_HOME=G:\jdk1.7.0_67
set classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;D:\javaclasses;
set path=G:\jdk1.7.0_67\bin
java com.zs.tools.SqlFormate
pause
根據需要修改你的JAVA_HOME位置。然後儲存為.bat。
下面在桌面新建sql.txt。寫入
select *
from dual
發現新建了
sqlformat.txt內容為
<p>" select *"</p><p>+" from dual\n"</p>
轉換成功!