访问者模式

断鸿 2020年04月08日 20次浏览

最近有个需求需要解析查询sql的where表达式,并为没有添加表别名字段加上别名。技术选用的是JSqlparser,查阅API后发现实现方式用的是访问者模式,实现源码如下

	Expression where = ps.getWhere();
        ExpressionVisitorAdapter expressionVisitor = new ExpressionVisitorAdapter(){
            @Override
            public void visit(Column column) {
                if (column.getTable() == null) {
                    column.setTable(new Table("222"));
                }
            }
        };
        where.accept(expressionVisitor);