package test;
import java.util.List;
import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleSelectTableReference;
import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitorAdapter;
import com.alibaba.druid.util.JdbcConstants;
public class alibaba {
public static void main(String[] args) {
String dbType = JdbcConstants.ORACLE; // JdbcConstants.MYSQL或者JdbcConstants.POSTGRESQL
String sql = "select * from table where a=$end";
List<SQLStatement> stmtList = SQLUtils.parseStatements(sql, dbType);
ExportTableAliasVisitor visitor = new ExportTableAliasVisitor();
for (SQLStatement stmt : stmtList) {
stmt.accept(visitor);
}
String sqlString = SQLUtils.toSQLString(stmtList, dbType);
System.out.println(sqlString);
}
}
class ExportTableAliasVisitor extends OracleASTVisitorAdapter {
@Override
public boolean visit(OracleSelectTableReference x) {
//String alias = x.getAlias();//別名
//SQLExpr expr = x.getExpr();//表名
//x.setExpr("mymymytable");//修改表名
//x.setAlias("aa");//修改別名
System.out.println(x.getExpr().toString());
return true;
}
}