Druid修改sql表名、修改sql別名,查詢sql表名

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;
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章