package com.alibaba.druid.bvt.sql.mysql.param; import com.alibaba.druid.sql.SQLUtils; import com.alibaba.druid.sql.ast.SQLStatement; import com.alibaba.druid.sql.parser.SQLParserUtils; import com.alibaba.druid.sql.parser.SQLStatementParser; import com.alibaba.druid.sql.visitor.SQLASTOutputVisitor; import com.alibaba.druid.util.JdbcConstants; import junit.framework.TestCase; import java.util.List; /** * Created by wenshao on 16/8/23. */ public class MySqlParameterizedOutputVisitorTest_37 extends TestCase { public void test_for_parameterize() throws Exception { final String dbType = JdbcConstants.MYSQL; String sql = "insert into fc_sms_0011_201704 (c1, c2, c3) values (1, 'a', 'b')"; SQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, dbType); List<SQLStatement> stmtList = parser.parseStatementList(); SQLStatement statement = stmtList.get(0); StringBuilder out = new StringBuilder(); // List<Object> parameters = new ArrayList<Object>(); SQLASTOutputVisitor visitor = SQLUtils.createOutputVisitor(out, JdbcConstants.MYSQL); visitor.setParameterized(true); visitor.setParameterizedMergeInList(true); // visitor.setParameters(parameters); visitor.setExportTables(true); visitor.setPrettyFormat(false); statement.accept(visitor); assertEquals("INSERT INTO fc_sms (c1, c2, c3) VALUES (?, ?, ?)", out.toString()); } }