由于工作中经常需要将大段的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>
转换成功!