mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
refactor sql parser.
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
package com.alibaba.druid.bvt.sql;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Created by wenshao on 16/9/25.
|
||||
*/
|
||||
public class MappingTest_alterTable extends TestCase {
|
||||
String sql = "ALTER TABLE user DROP INDEX pk_user;";
|
||||
|
||||
Map<String, String> mapping = Collections.singletonMap("user", "user_01");
|
||||
|
||||
public void test_mapping_createTable() throws Exception {
|
||||
String result = SQLUtils.refactor(sql, null, mapping);
|
||||
assertEquals("ALTER TABLE user_01\n" +
|
||||
"\tDROP INDEX pk_user", result);
|
||||
}
|
||||
|
||||
public void test_mapping_createTable_mysql() throws Exception {
|
||||
String result = SQLUtils.refactor(sql, JdbcConstants.MYSQL, mapping);
|
||||
assertEquals("ALTER TABLE user_01\n" +
|
||||
"\tDROP INDEX pk_user", result);
|
||||
}
|
||||
|
||||
public void test_mapping_createTable_oracle() throws Exception {
|
||||
String result = SQLUtils.refactor(sql, JdbcConstants.ORACLE, mapping);
|
||||
assertEquals("ALTER TABLE user_01\n" +
|
||||
"\tDROP INDEX pk_user", result);
|
||||
}
|
||||
|
||||
public void test_mapping_createTable_pg() throws Exception {
|
||||
String result = SQLUtils.refactor(sql, JdbcConstants.POSTGRESQL, mapping);
|
||||
assertEquals("ALTER TABLE user_01\n" +
|
||||
"\tDROP INDEX pk_user", result);
|
||||
}
|
||||
|
||||
public void test_mapping_createTable_sqlserver() throws Exception {
|
||||
String result = SQLUtils.refactor(sql, JdbcConstants.SQL_SERVER, mapping);
|
||||
assertEquals("ALTER TABLE user_01\n" +
|
||||
"\tDROP INDEX pk_user", result);
|
||||
}
|
||||
|
||||
public void test_mapping_createTable_db2() throws Exception {
|
||||
String result = SQLUtils.refactor(sql, JdbcConstants.DB2, mapping);
|
||||
assertEquals("ALTER TABLE user_01\n" +
|
||||
"\tDROP INDEX pk_user", result);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.alibaba.druid.bvt.sql;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Created by wenshao on 16/9/25.
|
||||
*/
|
||||
public class MappingTest_truncate extends TestCase {
|
||||
private String sql = "truncate table user";
|
||||
Map<String, String> mapping = Collections.singletonMap("user", "user_01");
|
||||
|
||||
public void test_mapping() throws Exception {
|
||||
String result = SQLUtils.refactor(sql, null, mapping);
|
||||
assertEquals("TRUNCATE TABLE user_01", result);
|
||||
}
|
||||
|
||||
public void test_mapping_mysql() throws Exception {
|
||||
String result = SQLUtils.refactor(sql, JdbcConstants.MYSQL, mapping);
|
||||
assertEquals("TRUNCATE TABLE user_01", result);
|
||||
}
|
||||
|
||||
public void test_mapping_pg() throws Exception {
|
||||
String result = SQLUtils.refactor(sql, JdbcConstants.POSTGRESQL, mapping);
|
||||
assertEquals("TRUNCATE TABLE user_01", result);
|
||||
}
|
||||
|
||||
public void test_mapping_oracle() throws Exception {
|
||||
String result = SQLUtils.refactor(sql, JdbcConstants.ORACLE, mapping);
|
||||
assertEquals("TRUNCATE TABLE user_01", result);
|
||||
}
|
||||
|
||||
public void test_mapping_sqlserver() throws Exception {
|
||||
String result = SQLUtils.refactor(sql, JdbcConstants.SQL_SERVER, mapping);
|
||||
assertEquals("TRUNCATE TABLE user_01", result);
|
||||
}
|
||||
|
||||
public void test_mapping_db2() throws Exception {
|
||||
String result = SQLUtils.refactor(sql, JdbcConstants.DB2, mapping);
|
||||
assertEquals("TRUNCATE TABLE user_01", result);
|
||||
}
|
||||
}
|
||||
+11
-3
@@ -17,22 +17,30 @@ package com.alibaba.druid.bvt.sql.mysql;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlOutputVisitor;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlParameterizedOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.oracle.visitor.OracleParameterizedOutputVisitor;
|
||||
|
||||
public class MySqlParameterizedOutputVisitorTest extends TestCase {
|
||||
|
||||
public void test_0() throws Exception {
|
||||
validate("SELECT * FROM T WHERE ID IN (?, ?, ?)", "SELECT *\nFROM T\nWHERE ID IN (?)");
|
||||
}
|
||||
|
||||
public void test_1() throws Exception {
|
||||
validate("SELECT * FROM T WHERE ID = 5", "SELECT *\nFROM T\nWHERE ID = ?");
|
||||
}
|
||||
|
||||
public void test_2() throws Exception {
|
||||
validate("SELECT * FROM T WHERE 1 = 0 AND ID = 5", "SELECT *\nFROM T\nWHERE 1 = 0\n\tAND ID = ?");
|
||||
}
|
||||
|
||||
public void test_3() throws Exception {
|
||||
validate("SELECT * FROM T WHERE ID = ? OR ID = ?", "SELECT *\nFROM T\nWHERE ID = ?");
|
||||
validate("SELECT * FROM T WHERE A.ID = ? OR A.ID = ?", "SELECT *\nFROM T\nWHERE A.ID = ?");
|
||||
validate("SELECT * FROM T WHERE 1 = 0 OR a.id = ? OR a.id = ? OR a.id = ? OR a.id = ?",
|
||||
@@ -56,7 +64,7 @@ public class MySqlParameterizedOutputVisitorTest extends TestCase {
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
StringBuilder out = new StringBuilder();
|
||||
MySqlParameterizedOutputVisitor visitor = new MySqlParameterizedOutputVisitor(out);
|
||||
MySqlOutputVisitor visitor = new MySqlOutputVisitor(out, true);
|
||||
stmt.accept(visitor);
|
||||
|
||||
Assert.assertTrue(visitor.getReplaceCount() > 0);
|
||||
|
||||
+2
-2
@@ -17,12 +17,12 @@ package com.alibaba.druid.bvt.sql.mysql;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlOutputVisitor;
|
||||
import org.junit.Assert;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlParameterizedOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.oracle.visitor.OracleParameterizedOutputVisitor;
|
||||
|
||||
@@ -47,7 +47,7 @@ public class MySqlParameterizedOutputVisitorTest2 extends TestCase {
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
StringBuilder out = new StringBuilder();
|
||||
MySqlParameterizedOutputVisitor visitor = new MySqlParameterizedOutputVisitor(out);
|
||||
MySqlOutputVisitor visitor = new MySqlOutputVisitor(out, true);
|
||||
stmt.accept(visitor);
|
||||
|
||||
Assert.assertEquals(expect, out.toString());
|
||||
|
||||
@@ -26,7 +26,6 @@ import junit.framework.TestCase;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlParameterizedOutputVisitor;
|
||||
import com.alibaba.druid.util.Utils;
|
||||
import com.alibaba.druid.util.JdbcUtils;
|
||||
|
||||
@@ -92,7 +91,7 @@ public class MySqlParserResourceTest extends TestCase {
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
StringBuilder out = new StringBuilder();
|
||||
MySqlParameterizedOutputVisitor visitor = new MySqlParameterizedOutputVisitor(out);
|
||||
MySqlOutputVisitor visitor = new MySqlOutputVisitor(out, true);
|
||||
statemen.accept(visitor);
|
||||
|
||||
out.toString();
|
||||
|
||||
@@ -26,7 +26,6 @@ import junit.framework.TestCase;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlParameterizedOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlSchemaStatVisitor;
|
||||
import com.alibaba.druid.util.Utils;
|
||||
import com.alibaba.druid.util.JdbcUtils;
|
||||
@@ -89,7 +88,7 @@ public class MySqlResourceTest extends TestCase {
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
StringBuilder out = new StringBuilder();
|
||||
MySqlParameterizedOutputVisitor visitor = new MySqlParameterizedOutputVisitor(out);
|
||||
MySqlOutputVisitor visitor = new MySqlOutputVisitor(out, true);
|
||||
statemen.accept(visitor);
|
||||
|
||||
System.out.println(out.toString());
|
||||
|
||||
@@ -20,14 +20,13 @@ import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlOutputVisitor;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlParameterizedOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.odps.parser.OdpsStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.odps.visitor.OdpsSchemaStatVisitor;
|
||||
import com.alibaba.druid.sql.visitor.SchemaStatVisitor;
|
||||
@@ -79,7 +78,7 @@ public class OdpsInsertTest extends TestCase {
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
StringBuilder out = new StringBuilder();
|
||||
MySqlParameterizedOutputVisitor visitor = new MySqlParameterizedOutputVisitor(out);
|
||||
MySqlOutputVisitor visitor = new MySqlOutputVisitor(out, true);
|
||||
statemen.accept(visitor);
|
||||
|
||||
System.out.println(out.toString());
|
||||
|
||||
@@ -20,14 +20,13 @@ import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlOutputVisitor;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlParameterizedOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.odps.parser.OdpsStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.odps.visitor.OdpsSchemaStatVisitor;
|
||||
import com.alibaba.druid.sql.visitor.SchemaStatVisitor;
|
||||
@@ -79,7 +78,7 @@ public class OdpsListResourcesTest extends TestCase {
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
StringBuilder out = new StringBuilder();
|
||||
MySqlParameterizedOutputVisitor visitor = new MySqlParameterizedOutputVisitor(out);
|
||||
MySqlOutputVisitor visitor = new MySqlOutputVisitor(out, true);
|
||||
statemen.accept(visitor);
|
||||
|
||||
System.out.println(out.toString());
|
||||
|
||||
@@ -20,14 +20,13 @@ import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlOutputVisitor;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlParameterizedOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.odps.parser.OdpsStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.odps.visitor.OdpsSchemaStatVisitor;
|
||||
import com.alibaba.druid.sql.visitor.SchemaStatVisitor;
|
||||
@@ -79,7 +78,7 @@ public class OdpsMultiInsertTest extends TestCase {
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
StringBuilder out = new StringBuilder();
|
||||
MySqlParameterizedOutputVisitor visitor = new MySqlParameterizedOutputVisitor(out);
|
||||
MySqlOutputVisitor visitor = new MySqlOutputVisitor(out, true);
|
||||
statemen.accept(visitor);
|
||||
|
||||
// System.out.println(out.toString());
|
||||
|
||||
@@ -20,14 +20,13 @@ import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlOutputVisitor;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlParameterizedOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.odps.parser.OdpsStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.odps.visitor.OdpsSchemaStatVisitor;
|
||||
import com.alibaba.druid.sql.visitor.SchemaStatVisitor;
|
||||
@@ -83,7 +82,7 @@ public class OdpsResourceTest extends TestCase {
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
StringBuilder out = new StringBuilder();
|
||||
MySqlParameterizedOutputVisitor visitor = new MySqlParameterizedOutputVisitor(out);
|
||||
MySqlOutputVisitor visitor = new MySqlOutputVisitor(out, true);
|
||||
statemen.accept(visitor);
|
||||
|
||||
System.out.println(out.toString());
|
||||
|
||||
@@ -20,14 +20,13 @@ import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlOutputVisitor;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlParameterizedOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.odps.parser.OdpsStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.odps.visitor.OdpsSchemaStatVisitor;
|
||||
import com.alibaba.druid.sql.visitor.SchemaStatVisitor;
|
||||
@@ -81,7 +80,7 @@ public class OdpsSelect_distribute_by_Test extends TestCase {
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
StringBuilder out = new StringBuilder();
|
||||
MySqlParameterizedOutputVisitor visitor = new MySqlParameterizedOutputVisitor(out);
|
||||
MySqlOutputVisitor visitor = new MySqlOutputVisitor(out, true);
|
||||
statemen.accept(visitor);
|
||||
|
||||
System.out.println(out.toString());
|
||||
|
||||
@@ -20,12 +20,12 @@ import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlOutputVisitor;
|
||||
import org.junit.Assert;
|
||||
|
||||
import com.alibaba.druid.sql.OracleTest;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlParameterizedOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.oracle.visitor.OracleSchemaStatVisitor;
|
||||
import com.alibaba.druid.util.Utils;
|
||||
@@ -85,7 +85,7 @@ public class OracleResourceTest extends OracleTest {
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
StringBuilder out = new StringBuilder();
|
||||
MySqlParameterizedOutputVisitor visitor = new MySqlParameterizedOutputVisitor(out);
|
||||
MySqlOutputVisitor visitor = new MySqlOutputVisitor(out, true);
|
||||
statemen.accept(visitor);
|
||||
|
||||
System.out.println(out.toString());
|
||||
|
||||
+1
-2
@@ -24,7 +24,6 @@ import org.junit.Assert;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.sqlserver.parser.SQLServerStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerParameterizedOutputVisitor;
|
||||
|
||||
public class SQLServerParameterizedOutputVisitorTest extends TestCase {
|
||||
|
||||
@@ -49,7 +48,7 @@ public class SQLServerParameterizedOutputVisitorTest extends TestCase {
|
||||
|
||||
public static String outputSqlServer(List<SQLStatement> stmtList) {
|
||||
StringBuilder out = new StringBuilder();
|
||||
SQLServerOutputVisitor visitor = new SQLServerParameterizedOutputVisitor(out);
|
||||
SQLServerOutputVisitor visitor = new SQLServerOutputVisitor(out, true);
|
||||
|
||||
for (SQLStatement stmt : stmtList) {
|
||||
stmt.accept(visitor);
|
||||
|
||||
@@ -23,12 +23,12 @@ import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlOutputVisitor;
|
||||
import org.junit.Assert;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlParameterizedOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.oracle.visitor.OracleParameterizedOutputVisitor;
|
||||
|
||||
@@ -141,7 +141,7 @@ public class OnlineSQLTest extends TestCase {
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
StringBuilder out = new StringBuilder();
|
||||
MySqlParameterizedOutputVisitor visitor = new MySqlParameterizedOutputVisitor(out);
|
||||
MySqlOutputVisitor visitor = new MySqlOutputVisitor(out, true);
|
||||
statemen.accept(visitor);
|
||||
|
||||
update(id, out.toString(), 1);
|
||||
|
||||
@@ -20,14 +20,13 @@ import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlOutputVisitor;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlParameterizedOutputVisitor;
|
||||
import com.alibaba.druid.sql.dialect.odps.parser.OdpsStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.odps.visitor.OdpsSchemaStatVisitor;
|
||||
import com.alibaba.druid.sql.visitor.SchemaStatVisitor;
|
||||
@@ -79,7 +78,7 @@ public class OdpsFileTest extends TestCase {
|
||||
Assert.assertEquals(1, statementList.size());
|
||||
|
||||
StringBuilder out = new StringBuilder();
|
||||
MySqlParameterizedOutputVisitor visitor = new MySqlParameterizedOutputVisitor(out);
|
||||
MySqlOutputVisitor visitor = new MySqlOutputVisitor(out, true);
|
||||
statemen.accept(visitor);
|
||||
|
||||
System.out.println(out.toString());
|
||||
|
||||
Reference in New Issue
Block a user