mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
enhance mapping
This commit is contained in:
@@ -119,11 +119,15 @@ public class MappingEngine {
|
||||
public SQLDeleteStatement explainToDeleteSQLObject(String sql) {
|
||||
return provider.explainToDeleteSQLObject(this, sql);
|
||||
}
|
||||
|
||||
|
||||
public String explainToDeleteSQL(String sql) {
|
||||
return explainToDeleteSQL(sql, new MappingContext());
|
||||
}
|
||||
|
||||
public String explainToDeleteSQL(String sql, MappingContext context) {
|
||||
SQLDeleteStatement stmt = explainToDeleteSQLObject(sql);
|
||||
|
||||
MappingVisitor visitor = this.createMappingVisitor(Collections.emptyList());
|
||||
MappingVisitor visitor = this.createMappingVisitor(context);
|
||||
stmt.accept(visitor);
|
||||
visitor.afterResolve();
|
||||
afterResole(visitor);
|
||||
@@ -142,11 +146,15 @@ public class MappingEngine {
|
||||
public SQLUpdateStatement explainToUpdateSQLObject(String sql) {
|
||||
return provider.explainToUpdateSQLObject(this, sql);
|
||||
}
|
||||
|
||||
|
||||
public String explainToUpdateSQL(String sql) {
|
||||
return explainToUpdateSQL(sql, new MappingContext());
|
||||
}
|
||||
|
||||
public String explainToUpdateSQL(String sql, MappingContext context) {
|
||||
SQLUpdateStatement stmt = explainToUpdateSQLObject(sql);
|
||||
|
||||
MappingVisitor visitor = this.createMappingVisitor(Collections.emptyList());
|
||||
MappingVisitor visitor = this.createMappingVisitor(context);
|
||||
stmt.accept(visitor);
|
||||
visitor.afterResolve();
|
||||
afterResole(visitor);
|
||||
@@ -157,11 +165,15 @@ public class MappingEngine {
|
||||
public SQLInsertStatement explainToInsertSQLObject(String sql) {
|
||||
return provider.explainToInsertSQLObject(this, sql);
|
||||
}
|
||||
|
||||
|
||||
public String explainToInsertSQL(String sql) {
|
||||
return explainToInsertSQL(sql, new MappingContext());
|
||||
}
|
||||
|
||||
public String explainToInsertSQL(String sql, MappingContext context) {
|
||||
SQLInsertStatement stmt = explainToInsertSQLObject(sql);
|
||||
|
||||
MappingVisitor visitor = this.createMappingVisitor(Collections.emptyList());
|
||||
MappingVisitor visitor = this.createMappingVisitor(context);
|
||||
stmt.accept(visitor);
|
||||
visitor.afterResolve();
|
||||
afterResole(visitor);
|
||||
|
||||
@@ -4,13 +4,13 @@ import java.util.List;
|
||||
|
||||
import com.alibaba.druid.mapping.MappingContext;
|
||||
import com.alibaba.druid.mapping.MappingEngine;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.ast.expr.SQLNumberExpr;
|
||||
import com.alibaba.druid.sql.ast.expr.SQLNumericLiteralExpr;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLDeleteStatement;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLInsertStatement;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLUpdateStatement;
|
||||
import com.alibaba.druid.sql.dialect.postgresql.parser.PGSQLStatementParser;
|
||||
import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerSelectQueryBlock;
|
||||
import com.alibaba.druid.sql.dialect.sqlserver.ast.Top;
|
||||
import com.alibaba.druid.sql.dialect.sqlserver.parser.SQLServerSelectParser;
|
||||
@@ -70,7 +70,7 @@ public class MSSQLServerMappingProvider implements MappingProvider {
|
||||
}
|
||||
|
||||
public SQLUpdateStatement explainToUpdateSQLObject(MappingEngine engine, String sql) {
|
||||
PGSQLStatementParser parser = new PGSQLStatementParser(sql);
|
||||
SQLServerStatementParser parser = new SQLServerStatementParser(sql);
|
||||
SQLUpdateStatement stmt = parser.parseUpdateStatement();
|
||||
|
||||
MappingVisitorUtils.setDataSource(engine, stmt);
|
||||
@@ -79,7 +79,7 @@ public class MSSQLServerMappingProvider implements MappingProvider {
|
||||
}
|
||||
|
||||
public SQLInsertStatement explainToInsertSQLObject(MappingEngine engine, String sql) {
|
||||
PGSQLStatementParser parser = new PGSQLStatementParser(sql);
|
||||
SQLServerStatementParser parser = new SQLServerStatementParser(sql);
|
||||
SQLInsertStatement stmt = (SQLInsertStatement) parser.parseInsert();
|
||||
|
||||
MappingVisitorUtils.setDataSource(engine, stmt);
|
||||
@@ -91,4 +91,10 @@ public class MSSQLServerMappingProvider implements MappingProvider {
|
||||
public ExportParameterVisitor createExportParameterVisitor(List<Object> parameters) {
|
||||
return new MSSQLServerExportParameterVisitor(parameters);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SQLStatement> explain(MappingEngine engine, String sql) {
|
||||
SQLServerStatementParser parser = new SQLServerStatementParser(sql);
|
||||
return parser.parseStatementList();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import java.util.List;
|
||||
|
||||
import com.alibaba.druid.mapping.MappingContext;
|
||||
import com.alibaba.druid.mapping.MappingEngine;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLDeleteStatement;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLInsertStatement;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock;
|
||||
@@ -20,6 +21,8 @@ public interface MappingProvider {
|
||||
ExportParameterVisitor createExportParameterVisitor(List<Object> parameters);
|
||||
|
||||
SQLASTOutputVisitor createOutputVisitor(MappingEngine engine, Appendable out);
|
||||
|
||||
List<SQLStatement> explain(MappingEngine engine, String sql);
|
||||
|
||||
SQLSelectQueryBlock explainToSelectSQLObject(MappingEngine engine, String sql);
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import java.util.List;
|
||||
|
||||
import com.alibaba.druid.mapping.MappingContext;
|
||||
import com.alibaba.druid.mapping.MappingEngine;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.ast.expr.SQLIntegerExpr;
|
||||
import com.alibaba.druid.sql.ast.expr.SQLNumericLiteralExpr;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLInsertStatement;
|
||||
@@ -90,4 +91,10 @@ public class MySqlMappingProvider implements MappingProvider {
|
||||
public ExportParameterVisitor createExportParameterVisitor(List<Object> parameters) {
|
||||
return new MySqlExportParameterVisitor(parameters);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SQLStatement> explain(MappingEngine engine, String sql) {
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
return parser.parseStatementList();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import java.util.List;
|
||||
|
||||
import com.alibaba.druid.mapping.MappingContext;
|
||||
import com.alibaba.druid.mapping.MappingEngine;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLInsertStatement;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock;
|
||||
import com.alibaba.druid.sql.ast.statement.SQLUpdateStatement;
|
||||
@@ -70,4 +71,10 @@ public class OracleMappingProvider implements MappingProvider {
|
||||
public ExportParameterVisitor createExportParameterVisitor(List<Object> parameters) {
|
||||
return new OracleExportParameterVisitor(parameters);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SQLStatement> explain(MappingEngine engine, String sql) {
|
||||
OracleStatementParser parser = new OracleStatementParser(sql);
|
||||
return parser.parseStatementList();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user