前言
现在需要向数据库中某张表中的某个字段中,插入的值为SQL语句,但是要保证插入SQL语句的正确性,而且还需要进行格式化,就像navicat中的美化SQL语句一样。
格式化
druid包中提供了SQLUtils用来格式化SQL语句,直接使用即可
依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.22</version>
</dependency>
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.parser.ParserException;
import com.alibaba.druid.sql.parser.SQLParserUtils;
import com.alibaba.druid.sql.parser.SQLStatementParser;
import java.util.List;
import static com.alibaba.druid.sql.SQLUtils.toSQLString;
public class test2 {
public static void main(String[] args) {
String str = "select * from a";
String s = sqlFormat(str);
System.out.println(s);
}
public static String sqlFormat(String sql) {
List<SQLStatement> statementList = null;
SQLStatementParser parser = null;
try {
parser = SQLParserUtils.createSQLStatementParser(sql, "mysql");
statementList = parser.parseStatementList();
} catch (ParserException e) {
System.out.println("SQL转换中发生了错误:" + e.getMessage());
throw e;
}
return toSQLString(statementList, "mysql");
}
}
转载自https://blog.csdn.net/qq1515312832/article/details/100848544