-
Notifications
You must be signed in to change notification settings - Fork 8.6k
SQL格式化
wenshao edited this page Mar 13, 2016
·
10 revisions
Druid SQL Parser提供了格式化代码的工具类。
package com.alibaba.druid.sql;
public class SQLUtils {
String format(String sq, String dbType);
String format(String sq, String dbType, FormatOption option);
}
- 其中dbType支持mysql/postgresql/odps/oracle/db2/sqlserver
- option缺省有SQLUtils.DEFAULT_FORMAT_OPTION(大写)、SQLUtils.DEFAULT_LCASE_FORMAT_OPTION(小写)两种可以选择,也可按需要定制化。
import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.util.JdbcConstants;
String sql = "update t set name = 'x' where id < 100 limit 10";
String formattedSql = SQLUtils.format(sql, JdbcConstants.MYSQL);
String formattedSql_lcase = SQLUtils.format(sql, JdbcConstants.MYSQL, SQLUtils.DEFAULT_LCASE_FORMAT_OPTION);
System.out.println(formattedSql); // 缺省大写格式
System.out.println(formattedSql_lcase); // 小写格式
输出格式化后的结果:
-- 这是缺省的大写格式
UPDATE t
SET name = 'x'
WHERE id < 100
LIMIT 10
-- 这是小写格式
update t
set name = 'x'
where id < 100
limit 10