static String format(String sql, DbType dbType, SQLUtils.FormatOption option) static String format(String sql, String dbType) static String formatHive(String sql) static String formatHive(String sql, SQLUtils.FormatOption option) static String formatMySql(String sql) static String formatMySql...
最后,我们使用 SQLUtils.toMySqlString 方法将解析后的 AST 转换回 SQL 字符串,并打印出来。 5. Druid 语法解析的重要性和应用场景 Druid 语法解析的重要性在于它能够将 SQL 语句转换为一种结构化的表示形式(AST),从而方便后续的处理和分析。这使得 Druid 在数据库中间件、数据查询引擎等场景中有着广泛的应用。
SQLStatement stmt = SQLUtils.parseSingleStatement(sql, context); System.out.println("SQL语句: " + stmt.toString()); System.out.println("SQL类型: " + stmt.getSqlType()); System.out.println("SQL参数: " + stmt.getParameterNumber()); } } ``` 上述代码中,我们首先创建了一个`SQLParserConte...
public class SqlServerParser { /** * 解析sql语句 * * @param statement * @return */ public void parse(String statement) { // 使用druid解析语句 // 第一个参数为SQL语句 // 第二个参数为解析的数据库类型 List<SQLStatement> statementList = SQLUtils.parseStatements(statement, JdbcConstants.SQL_SER...
System.out.println(SQLUtils.parseSingleMysqlStatement("delete from users where id = 1")instanceofSQLDeleteStatement); } 2.1.2 SQLSelect SQL查询 SQLSelectStatement包含一个SQLSelect,SQLSelect包含一个SQLSelectQuery。SQLSelectQuery有主要的两个派生类, ...
System.out.println("postgreSql格式化:"+ SQLUtils.format(sql, DbType.postgresql)); }/** * sql格式 *@paramsql 格式化的语句 *@paramdbType 数据库类型 */publicstaticvoidsqlFormat(String sql, DbType dbType){ System.out.println("sql格式化:"+ SQLUtils.format(sql, dbType)); ...
SQLUtils的parseStatements方法会把你传入的SQL语句给解析成SQLStatement对象集合,每一个SQLStatement代表一条完整的SQL语句,如: 复制 SELECTidFROMuserWHEREstatus=1 1. 多个SQLStatement,如: 复制 SELECTidFROMuserWHEREstatus=1;SELECTidFROMorderWHEREcreate_time>'2018-01-01' ...
importcom.alibaba.druid.sql.SQLUtils;importcom.alibaba.druid.sql.ast.SQLStatement;importcom.alibaba.druid.sql.parser.SQLParser;importcom.alibaba.druid.sql.parser.SQLParserFeature;importjava.util.List;publicclassSqlParserExample{publicstaticvoidmain(String[]args){Stringsql="CREATE TABLE user (id INT, ...
import com.alibaba.druid.sql.SQLUtils; import com.alibaba.druid.sql.ast.SQLExpr; import com.alibaba.druid.sql.ast.expr.SQLIntegerExpr; import com.alibaba.druid.sql.ast.statement.SQLColumnDefinition; import com.alibaba.druid.sql.ast.statement.SQLCommentStatement; ...
sql = SQLUtils.toSQLString(statement, JdbcConstants.HIVE); }*/// 添加库名Map<TableStat.Name, TableStat> tables = visitor.getTables();for(Map.Entry<TableStat.Name, TableStat> entry : tables.entrySet()) {StringtableName=entry.getKey().getName();if(tableName.contains(".")) {continue; ...