package com.alibaba.druid.demo.sql;
import java.util.List;
import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlExportParameterVisitor;
import com.alibaba.druid.sql.visitor.ExportParameterVisitor;
import com.alibaba.druid.util.JdbcConstants;
import junit.framework.TestCase;
public class ExportParameters extends TestCase {
public void test_export_parameters() throws Exception {
String sql = "select * from t where id = 3 and name = 'abc'";
List<SQLStatement> stmtList = SQLUtils.parseStatements(sql, JdbcConstants.MYSQL);
StringBuilder out = new StringBuilder();
ExportParameterVisitor visitor = new MySqlExportParameterVisitor(out);
for (SQLStatement stmt : stmtList) {
stmt.accept(visitor);
}
String paramteredSql = out.toString();
System.out.println(paramteredSql);
List<Object> paramters = visitor.getParameters(); // [3, "abc"]
for (Object param : paramters) {
System.out.println(param);
}
}
}