mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improve parser & wall-filter
This commit is contained in:
@@ -23,7 +23,9 @@ import com.alibaba.druid.sql.ast.expr.SQLNCharExpr;
|
||||
import com.alibaba.druid.sql.ast.expr.SQLNullExpr;
|
||||
import com.alibaba.druid.sql.ast.expr.SQLNumberExpr;
|
||||
|
||||
public class ParameterizedOutputVisitor extends SQLASTOutputVisitor {
|
||||
public class ParameterizedOutputVisitor extends SQLASTOutputVisitor implements ParameterizedVisitor {
|
||||
private int replaceCount;
|
||||
|
||||
public ParameterizedOutputVisitor() {
|
||||
this (new StringBuilder());
|
||||
}
|
||||
@@ -31,6 +33,14 @@ public class ParameterizedOutputVisitor extends SQLASTOutputVisitor {
|
||||
public ParameterizedOutputVisitor(Appendable appender){
|
||||
super(appender);
|
||||
}
|
||||
|
||||
public int getReplaceCount() {
|
||||
return this.replaceCount;
|
||||
}
|
||||
|
||||
public void incrementReplaceCunt() {
|
||||
replaceCount++;
|
||||
}
|
||||
|
||||
public boolean visit(SQLInListExpr x) {
|
||||
return ParameterizedOutputVisitorUtils.visit(this, x);
|
||||
@@ -44,6 +54,7 @@ public class ParameterizedOutputVisitor extends SQLASTOutputVisitor {
|
||||
|
||||
public boolean visit(SQLNullExpr x) {
|
||||
print('?');
|
||||
incrementReplaceCunt();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -53,6 +64,7 @@ public class ParameterizedOutputVisitor extends SQLASTOutputVisitor {
|
||||
}
|
||||
|
||||
print('?');
|
||||
incrementReplaceCunt();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -62,6 +74,7 @@ public class ParameterizedOutputVisitor extends SQLASTOutputVisitor {
|
||||
}
|
||||
|
||||
print('?');
|
||||
incrementReplaceCunt();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -71,6 +84,7 @@ public class ParameterizedOutputVisitor extends SQLASTOutputVisitor {
|
||||
}
|
||||
|
||||
print('?');
|
||||
incrementReplaceCunt();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -80,6 +94,7 @@ public class ParameterizedOutputVisitor extends SQLASTOutputVisitor {
|
||||
}
|
||||
|
||||
print('?');
|
||||
incrementReplaceCunt();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.alibaba.druid.sql.visitor;
|
||||
|
||||
public interface ParameterizedVisitor extends SQLASTVisitor {
|
||||
|
||||
int getReplaceCount();
|
||||
|
||||
void incrementReplaceCunt();
|
||||
}
|
||||
Reference in New Issue
Block a user