1. 程式人生 > >sql指令碼格式化為程式碼的工具

sql指令碼格式化為程式碼的工具

由於工作中經常需要將大段的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>

轉換成功!