2、基本的方法com.alibaba druid1.2.8
需要美化的SQL可以直接调用如下方法: formatMysql(String sql) formatOdps(String sql) formatOracle(String sql) formatPGSql(String sql) 如果数据库类型不是以上四个,还可以 format(String sql,String dbType)3、实际测试代码
package com.shucha.deveiface.biz.test;
import com.alibaba.druid.DbType;
import com.alibaba.druid.sql.SQLUtils;
public class SqlFormat {
public static void main(String[] args) {
String mysql = "SELECt *,CASE WHEN UNIX_TIMESTAMP( expire_time ) < UNIX_TIMESTAMP( NOW( ) ) THEN 1 ELSE 0 END state FROM `expire_time_data`;";
mysql(mysql);
String oracle = "SELECt a.TABLE_NAME,b.COMMENTS FROM user_tables a,user_tab_comments b WHERe a.TABLE_NAME=b.TABLE_NAME ORDER BY TABLE_NAME;";
oracleSql(oracle);
String pgsql = "SELECt tablename FROM pg_tables WHERe tablename NOT LIKE 'pg%' AND tablename NOT LIKE 'sql_%' ORDER BY tablename;";
PgSql(pgsql);
sqlFormat(mysql,DbType.mysql);
}
public static void mysql(String sql){
System.out.println("Mysql格式化:" + SQLUtils.formatMySql(sql));
}
public static void oracleSql(String sql){
System.out.println("Oracle格式化:" + SQLUtils.formatOracle(sql));
}
public static void PgSql(String sql){
System.out.println("postgreSql格式化:" + SQLUtils.format(sql, DbType.postgresql));
}
public static void sqlFormat(String sql, DbType dbType){
System.out.println("sql格式化:" + SQLUtils.format(sql, dbType));
}
}
格式化后如下
Mysql格式化: SELECt * , CASE WHEN UNIX_TIMESTAMP(expire_time) < UNIX_TIMESTAMP(NOW()) THEN 1 ELSE 0 END AS state FROM `expire_time_data`; Oracle格式化: SELECt a.TABLE_NAME, b.COMMENTS FROM user_tables a, user_tab_comments b WHERe a.TABLE_NAME = b.TABLE_NAME ORDER BY TABLE_NAME; postgreSql格式化: SELECt tablename FROM pg_tables WHERe tablename NOT LIKE 'pg%' AND tablename NOT LIKE 'sql_%' ORDER BY tablename;



