For IntelliJ IDEA,
Android Studio or Eclipse



private void myMethod () {}
@Override public void visit(Select select) { if (select.getWithItemsList() != null) { for (WithItem withItem : select.getWithItemsList()) { withItem.accept(this); } } select.getSelectBody().accept(this); }
public class MultiFromItems { public static void main(String args[]) throws JSQLParserException { String sql = "select t1.a, t2.b from t1, t2 where t1.id = t2.id"; Statement parse = CCJSqlParserUtil.parse(sql); Select select = (Select)parse; PlainSelect ps = (PlainSelect)select.getSelectBody(); System.out.println(ps); System.out.println(ps.getFromItem()); System.out.println(ps.getJoins().get(0)); } }
/** The query for obtaining values of parameters is almost the same with the original source query, except that we only need to distinct project the columns needed for the template expansion */ private static String getTemplateValuesQuery(String sql, List<SelectExpressionItem> templateColumns) throws JSQLParserException { Select select = (Select)CCJSqlParserUtil.parse(sql); PlainSelect plainSelect = (PlainSelect)select.getSelectBody(); plainSelect.setDistinct(new Distinct()); plainSelect.setSelectItems(ImmutableList.copyOf(templateColumns)); // SelectExpressionItem -> SelectItem return select.toString(); }
public static PlainSelect parseQuery(CCJSqlParserManager parserManager, String query) throws JSQLParserException { PlainSelect parsedQueryString; if(!query.toLowerCase().trim().startsWith("select")) { query = FAKE_SELECT_PREFIX + query; } parsedQueryString = (PlainSelect) ((Select) parserManager.parse(new StringReader(query))) .getSelectBody(); return parsedQueryString; }
String sqlStr = "SELECT mytable alias FROM mytable"; Select select = (Select)CCJSqlParserUtil.parse(sqlStr); System.out.println(select.getSelectBody()); PlainSelect pl = (PlainSelect)select.getSelectBody(); for (SelectItem item : pl.getSelectItems()) { System.out.println(item.toString()); }
private void appendSelect(Upsert upsert) { buffer.append(" "); if (upsert.isUseSelectBrackets()) { buffer.append("("); } if (upsert.getSelect().getWithItemsList() != null) { buffer.append("WITH "); for (WithItem with : upsert.getSelect().getWithItemsList()) { with.accept(selectVisitor); } buffer.append(" "); } upsert.getSelect().getSelectBody().accept(selectVisitor); if (upsert.isUseSelectBrackets()) { buffer.append(")"); } }
String sql ="SELECT NAME, ADDRESS, COL1 FROM USER WHERE SSN IN ('11111111111111', '22222222222222');"; Select select = (Select) CCJSqlParserUtil.parse(sql); //Start of value modification StringBuilder buffer = new StringBuilder(); ExpressionDeParser expressionDeParser = new ExpressionDeParser() { @Override public void visit(StringValue stringValue) { this.getBuffer().append("XXXX"); } }; SelectDeParser deparser = new SelectDeParser(expressionDeParser,buffer ); expressionDeParser.setSelectVisitor(deparser); expressionDeParser.setBuffer(buffer); select.getSelectBody().accept(deparser); //End of value modification System.out.println(buffer.toString()); //Result is: SELECT NAME, ADDRESS, COL1 FROM USER WHERE SSN IN (XXXX, XXXX)
@Override public void visit(Select select) { selectDeParser.setBuffer(buffer); expressionDeParser.setSelectVisitor(selectDeParser); expressionDeParser.setBuffer(buffer); selectDeParser.setExpressionVisitor(expressionDeParser); if (select.getWithItemsList() != null && !select.getWithItemsList().isEmpty()) { buffer.append("WITH "); for (Iterator<WithItem> iter = select.getWithItemsList().iterator(); iter.hasNext();) { WithItem withItem = iter.next(); withItem.accept(selectDeParser); if (iter.hasNext()) { buffer.append(","); } buffer.append(" "); } } select.getSelectBody().accept(selectDeParser); }
public void visit(Select select) { SelectDeParser selectDeParser = new SelectDeParser(); selectDeParser.setBuffer(buffer); ExpressionDeParser expressionDeParser = new ExpressionDeParser(selectDeParser, buffer); selectDeParser.setExpressionVisitor(expressionDeParser); if (select.getWithItemsList() != null && !select.getWithItemsList().isEmpty()) { buffer.append("WITH "); for (Iterator iter = select.getWithItemsList().iterator(); iter.hasNext();) { WithItem withItem = (WithItem)iter.next(); buffer.append(withItem); if (iter.hasNext()) buffer.append(","); buffer.append(" "); } } select.getSelectBody().accept(selectDeParser); }
public void visit(Select select) { select.getSelectBody().accept(this); }
/** * Create a new query with the changed projection and selection */ private static String getInstantiatedSQL(String sql, List<SelectItem> newColumns, List<SelectExpressionItem> templateColumns, List<String> values) throws JSQLParserException { Select select = (Select) CCJSqlParserUtil.parse(sql); PlainSelect plainSelect = (PlainSelect)select.getSelectBody(); Expression where = plainSelect.getWhere(); int size = templateColumns.size(); // both lists have the same size for (int i = 0; i < size; i++) { BinaryExpression condition = new EqualsTo(); condition.setLeftExpression(templateColumns.get(i).getExpression()); condition.setRightExpression(new StringValue("'" + values.get(i) + "'")); where = (where == null) ? condition : new AndExpression(where, condition); } plainSelect.setWhere(where); // where cannot be null plainSelect.setSelectItems(newColumns); return select.toString(); }
@Override public void visit(Select select) { if (select.getWithItemsList() != null) { for (WithItem withItem : select.getWithItemsList()) { withItem.accept(this); } } select.getSelectBody().accept(this); }
/** * Main entry for this Tool class. A list of found tables is returned. * * @param select */ public TableNameVisitor(Select select, QuotedIDFactory idfac) throws JSQLParserException { this.idfac = idfac; if (select.getWithItemsList() != null) { for (WithItem withItem : select.getWithItemsList()) withItem.accept(selectVisitor); } select.getSelectBody().accept(selectVisitor); }
private void appendSelect(Upsert upsert) { buffer.append(" "); if (upsert.isUseSelectBrackets()) { buffer.append("("); } if (upsert.getSelect().getWithItemsList() != null) { buffer.append("WITH "); for (WithItem with : upsert.getSelect().getWithItemsList()) { with.accept(selectVisitor); } buffer.append(" "); } upsert.getSelect().getSelectBody().accept(selectVisitor); if (upsert.isUseSelectBrackets()) { buffer.append(")"); } }
@Override public void visit(Select select) { selectDeParser.setBuffer(buffer); expressionDeParser.setSelectVisitor(selectDeParser); expressionDeParser.setBuffer(buffer); selectDeParser.setExpressionVisitor(expressionDeParser); if (select.getWithItemsList() != null && !select.getWithItemsList().isEmpty()) { buffer.append("WITH "); for (Iterator<WithItem> iter = select.getWithItemsList().iterator(); iter.hasNext();) { WithItem withItem = iter.next(); withItem.accept(selectDeParser); if (iter.hasNext()) { buffer.append(","); } buffer.append(" "); } } select.getSelectBody().accept(selectDeParser); }