oracle sql parser support multi insert

This commit is contained in:
温少
2012-02-25 16:26:09 +08:00
parent 7d34b6efc5
commit e40888c28d
11 changed files with 554 additions and 92 deletions
@@ -0,0 +1,60 @@
package com.alibaba.druid.sql.ast.statement;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
import com.alibaba.druid.sql.ast.statement.SQLInsertStatement.ValuesClause;
public abstract class SQLInsertInto extends SQLObjectImpl {
private static final long serialVersionUID = 1L;
protected SQLName tableName;
protected String alias;
protected final List<SQLExpr> columns = new ArrayList<SQLExpr>();
protected ValuesClause values;
protected SQLSelect query;
public SQLInsertInto(){
}
public String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
public SQLName getTableName() {
return tableName;
}
public void setTableName(SQLName tableName) {
this.tableName = tableName;
}
public SQLSelect getQuery() {
return query;
}
public void setQuery(SQLSelect query) {
this.query = query;
}
public List<SQLExpr> getColumns() {
return columns;
}
public ValuesClause getValues() {
return values;
}
public void setValues(ValuesClause values) {
this.values = values;
}
}
@@ -19,61 +19,18 @@ import java.util.ArrayList;
import java.util.List;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
import com.alibaba.druid.sql.ast.SQLStatementImpl;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLInsertStatement extends SQLStatementImpl {
public class SQLInsertStatement extends SQLInsertInto implements SQLStatement {
private static final long serialVersionUID = 1L;
protected SQLName tableName;
protected String alias;
protected final List<SQLExpr> columns = new ArrayList<SQLExpr>();
protected ValuesClause values;
protected SQLSelect query;
private static final long serialVersionUID = 1L;
public SQLInsertStatement(){
}
public String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
public SQLName getTableName() {
return tableName;
}
public void setTableName(SQLName tableName) {
this.tableName = tableName;
}
public SQLSelect getQuery() {
return query;
}
public void setQuery(SQLSelect query) {
this.query = query;
}
public List<SQLExpr> getColumns() {
return columns;
}
public ValuesClause getValues() {
return values;
}
public void setValues(ValuesClause values) {
this.values = values;
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {