mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improved sql format output
This commit is contained in:
@@ -226,7 +226,10 @@ public class SQLUtils {
|
||||
|
||||
public static String format(String sql, String dbType, List<Object> parameters) {
|
||||
try {
|
||||
List<SQLStatement> statementList = toStatementList(sql, dbType);
|
||||
SQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, dbType);
|
||||
parser.setKeepComments(true);
|
||||
|
||||
List<SQLStatement> statementList = parser.parseStatementList();
|
||||
|
||||
return toSQLString(statementList, dbType, parameters);
|
||||
} catch (ParserException ex) {
|
||||
@@ -247,10 +250,27 @@ public class SQLUtils {
|
||||
}
|
||||
|
||||
for (int i = 0; i < statementList.size(); i++) {
|
||||
SQLStatement stmt = statementList.get(i);
|
||||
|
||||
if (i > 0) {
|
||||
out.append(";\n");
|
||||
visitor.println(";");
|
||||
}
|
||||
|
||||
List<String> comments = stmt.getBeforeCommentsDirect();
|
||||
if (comments != null){
|
||||
for(String comment : comments) {
|
||||
visitor.println(comment);
|
||||
}
|
||||
}
|
||||
stmt.accept(visitor);
|
||||
|
||||
if (i == statementList.size() - 1) {
|
||||
Boolean semi = (Boolean) stmt.getAttribute("format.semi");
|
||||
if (semi != null && semi.booleanValue()) {
|
||||
visitor.println();
|
||||
visitor.print(";");
|
||||
}
|
||||
}
|
||||
statementList.get(i).accept(visitor);
|
||||
}
|
||||
|
||||
return out.toString();
|
||||
|
||||
Reference in New Issue
Block a user