mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
refactor
This commit is contained in:
@@ -59,7 +59,7 @@ public class MySqlMappingProvider implements MappingProvider {
|
||||
MySqlDeleteStatement stmt = parser.parseDeleteStatement();
|
||||
if (stmt.getTableSource() == null) {
|
||||
Entity entity = engine.getFirstEntity();
|
||||
stmt.setTableName(new SQLIdentifierExpr(entity.getName()));
|
||||
stmt.setTableSource(new SQLIdentifierExpr(entity.getName()));
|
||||
}
|
||||
|
||||
return stmt;
|
||||
@@ -67,7 +67,14 @@ public class MySqlMappingProvider implements MappingProvider {
|
||||
|
||||
public SQLUpdateStatement explainToUpdateSQLObject(MappingEngine engine, String sql) {
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
return parser.parseUpdateStatement();
|
||||
SQLUpdateStatement stmt = parser.parseUpdateStatement();
|
||||
|
||||
if (stmt.getTableSource() == null) {
|
||||
Entity entity = engine.getFirstEntity();
|
||||
stmt.setTableSource(new SQLIdentifierExpr(entity.getName()));
|
||||
}
|
||||
|
||||
return stmt;
|
||||
}
|
||||
|
||||
public SQLInsertStatement explainToInsertSQLObject(MappingEngine engine, String sql) {
|
||||
|
||||
@@ -35,6 +35,10 @@ public class SQLDeleteStatement extends SQLStatementImpl {
|
||||
public SQLExprTableSource getTableSource() {
|
||||
return tableSource;
|
||||
}
|
||||
|
||||
public void setTableSource(SQLExpr expr) {
|
||||
this.setTableSource(new SQLExprTableSource(expr));
|
||||
}
|
||||
|
||||
public void setTableSource(SQLExprTableSource tableSource) {
|
||||
this.tableSource = tableSource;
|
||||
@@ -45,7 +49,7 @@ public class SQLDeleteStatement extends SQLStatementImpl {
|
||||
}
|
||||
|
||||
public void setTableName(SQLName tableName) {
|
||||
this.tableSource = new SQLExprTableSource(tableName);
|
||||
this.setTableSource(new SQLExprTableSource(tableName));
|
||||
}
|
||||
|
||||
public void setTableName(String name) {
|
||||
|
||||
@@ -39,6 +39,10 @@ public class SQLUpdateStatement extends SQLStatementImpl {
|
||||
public SQLTableSource getTableSource() {
|
||||
return tableSource;
|
||||
}
|
||||
|
||||
public void setTableSource(SQLExpr expr) {
|
||||
this.setTableSource(new SQLExprTableSource(expr));
|
||||
}
|
||||
|
||||
public void setTableSource(SQLTableSource tableSource) {
|
||||
this.tableSource = tableSource;
|
||||
|
||||
+2
-3
@@ -84,9 +84,8 @@ public class MySqlDeleteStatement extends SQLDeleteStatement {
|
||||
}
|
||||
return (SQLName) tableSources.get(0).getExpr();
|
||||
}
|
||||
|
||||
public void setTableName(SQLName tableName) {
|
||||
SQLExprTableSource tableSource = new SQLExprTableSource(tableName);
|
||||
|
||||
public void setTableSource(SQLExprTableSource tableSource) {
|
||||
if (tableSources.size() == 0) {
|
||||
tableSources.add(tableSource);
|
||||
} else {
|
||||
|
||||
@@ -294,7 +294,7 @@ public class SQLStatementParser extends SQLParser {
|
||||
public SQLStatement parseCreate() throws ParserException {
|
||||
char mark_ch = lexer.current();
|
||||
int mark_bp = lexer.bp();
|
||||
|
||||
|
||||
accept(Token.CREATE);
|
||||
|
||||
Token token = lexer.token();
|
||||
@@ -313,14 +313,14 @@ public class SQLStatementParser extends SQLParser {
|
||||
lexer.reset(mark_bp, mark_ch, Token.CREATE);
|
||||
return parseCreateProcedure();
|
||||
}
|
||||
|
||||
//lexer.reset(mark_bp, mark_ch, Token.CREATE);
|
||||
|
||||
// lexer.reset(mark_bp, mark_ch, Token.CREATE);
|
||||
throw new ParserException("TODO " + lexer.token() + " " + lexer.stringVal());
|
||||
}
|
||||
|
||||
throw new ParserException("TODO " + lexer.token());
|
||||
}
|
||||
|
||||
|
||||
public SQLStatement parseCreateProcedure() {
|
||||
throw new ParserException("TODO " + lexer.token());
|
||||
}
|
||||
@@ -346,13 +346,15 @@ public class SQLStatementParser extends SQLParser {
|
||||
}
|
||||
|
||||
public SQLUpdateStatement parseUpdateStatement() throws ParserException {
|
||||
accept(Token.UPDATE);
|
||||
|
||||
SQLUpdateStatement udpateStatement = new SQLUpdateStatement();
|
||||
|
||||
if (lexer.token() == Token.UPDATE) {
|
||||
lexer.nextToken();
|
||||
|
||||
SQLTableSource tableSource = this.exprParser.createSelectParser().parseTableSource();
|
||||
udpateStatement.setTableSource(tableSource);
|
||||
|
||||
SQLTableSource tableSource = this.exprParser.createSelectParser().parseTableSource();
|
||||
udpateStatement.setTableSource(tableSource);
|
||||
}
|
||||
|
||||
accept(Token.SET);
|
||||
|
||||
for (;;) {
|
||||
|
||||
@@ -706,7 +706,8 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter {
|
||||
|
||||
x.getTableSource().accept(this);
|
||||
|
||||
print(" SET ");
|
||||
println();
|
||||
print("SET ");
|
||||
for (int i = 0, size = x.getItems().size(); i < size; ++i) {
|
||||
if (i != 0) {
|
||||
print(", ");
|
||||
@@ -715,7 +716,8 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter {
|
||||
}
|
||||
|
||||
if (x.getWhere() != null) {
|
||||
print(" WHERE ");
|
||||
println();
|
||||
print("WHERE ");
|
||||
x.getWhere().setParent(x);
|
||||
x.getWhere().accept(this);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user