net.sf.jsqlparser.statement.select.Select.getSelectBody()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(8.5k)|赞(0)|评价(0)|浏览(594)

本文整理了Java中net.sf.jsqlparser.statement.select.Select.getSelectBody()方法的一些代码示例,展示了Select.getSelectBody()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Select.getSelectBody()方法的具体详情如下:
包路径:net.sf.jsqlparser.statement.select.Select
类名称:Select
方法名:getSelectBody

Select.getSelectBody介绍

暂无

代码示例

代码示例来源:origin: JSQLParser/JSqlParser

  1. /**
  2. * Adds an expression to select statements. E.g. a simple column is an expression.
  3. *
  4. * @param select
  5. * @param expr
  6. */
  7. public static void addExpression(Select select, final Expression expr) {
  8. select.getSelectBody().accept(new SelectVisitor() {
  9. @Override
  10. public void visit(PlainSelect plainSelect) {
  11. plainSelect.getSelectItems().add(new SelectExpressionItem(expr));
  12. }
  13. @Override
  14. public void visit(SetOperationList setOpList) {
  15. throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
  16. }
  17. @Override
  18. public void visit(WithItem withItem) {
  19. throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
  20. }
  21. @Override
  22. public void visit(ValuesStatement aThis) {
  23. throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
  24. }
  25. });
  26. }

代码示例来源:origin: JSQLParser/JSqlParser

  1. select.getSelectBody().accept(new SelectVisitor() {

代码示例来源:origin: JSQLParser/JSqlParser

  1. /**
  2. * Adds a simple join to a select statement. The introduced join is returned for more
  3. * configuration settings on it (e.g. left join, right join).
  4. *
  5. * @param select
  6. * @param table
  7. * @param onExpression
  8. * @return
  9. */
  10. public static Join addJoin(Select select, final Table table, final Expression onExpression) {
  11. if (select.getSelectBody() instanceof PlainSelect) {
  12. PlainSelect plainSelect = (PlainSelect) select.getSelectBody();
  13. List<Join> joins = plainSelect.getJoins();
  14. if (joins == null) {
  15. joins = new ArrayList<Join>();
  16. plainSelect.setJoins(joins);
  17. }
  18. Join join = new Join();
  19. join.setRightItem(table);
  20. join.setOnExpression(onExpression);
  21. joins.add(join);
  22. return join;
  23. }
  24. throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
  25. }

代码示例来源:origin: alibaba/mdrill

  1. public void visit(Select select) {
  2. SelectDeParser selectDeParser = new SelectDeParser();
  3. selectDeParser.setBuffer(buffer);
  4. ExpressionDeParser expressionDeParser = new ExpressionDeParser(selectDeParser, buffer);
  5. selectDeParser.setExpressionVisitor(expressionDeParser);
  6. if (select.getWithItemsList() != null && !select.getWithItemsList().isEmpty()) {
  7. buffer.append("WITH ");
  8. for (Iterator iter = select.getWithItemsList().iterator(); iter.hasNext();) {
  9. WithItem withItem = (WithItem)iter.next();
  10. buffer.append(withItem);
  11. if (iter.hasNext())
  12. buffer.append(",");
  13. buffer.append(" ");
  14. }
  15. }
  16. select.getSelectBody().accept(selectDeParser);
  17. }

代码示例来源:origin: JSQLParser/JSqlParser

  1. @Override
  2. public void visit(Select select) {
  3. selectDeParser.setBuffer(buffer);
  4. expressionDeParser.setSelectVisitor(selectDeParser);
  5. expressionDeParser.setBuffer(buffer);
  6. selectDeParser.setExpressionVisitor(expressionDeParser);
  7. if (select.getWithItemsList() != null && !select.getWithItemsList().isEmpty()) {
  8. buffer.append("WITH ");
  9. for (Iterator<WithItem> iter = select.getWithItemsList().iterator(); iter.hasNext();) {
  10. WithItem withItem = iter.next();
  11. withItem.accept(selectDeParser);
  12. if (iter.hasNext()) {
  13. buffer.append(",");
  14. }
  15. buffer.append(" ");
  16. }
  17. }
  18. select.getSelectBody().accept(selectDeParser);
  19. }

代码示例来源:origin: JSQLParser/JSqlParser

  1. @Override
  2. public void visit(Select select) {
  3. if (select.getWithItemsList() != null) {
  4. for (WithItem withItem : select.getWithItemsList()) {
  5. withItem.accept(this);
  6. }
  7. }
  8. select.getSelectBody().accept(this);
  9. }

代码示例来源:origin: JSQLParser/JSqlParser

  1. private void appendSelect(Upsert upsert) {
  2. buffer.append(" ");
  3. if (upsert.isUseSelectBrackets()) {
  4. buffer.append("(");
  5. }
  6. if (upsert.getSelect().getWithItemsList() != null) {
  7. buffer.append("WITH ");
  8. for (WithItem with : upsert.getSelect().getWithItemsList()) {
  9. with.accept(selectVisitor);
  10. }
  11. buffer.append(" ");
  12. }
  13. upsert.getSelect().getSelectBody().accept(selectVisitor);
  14. if (upsert.isUseSelectBrackets()) {
  15. buffer.append(")");
  16. }
  17. }

代码示例来源:origin: baomidou/mybatis-plus

  1. /**
  2. * 执行 SQL 解析
  3. *
  4. * @param statement JsqlParser Statement
  5. * @return
  6. */
  7. public SqlInfo processParser(Statement statement) {
  8. if (statement instanceof Insert) {
  9. this.processInsert((Insert) statement);
  10. } else if (statement instanceof Select) {
  11. this.processSelectBody(((Select) statement).getSelectBody());
  12. } else if (statement instanceof Update) {
  13. this.processUpdate((Update) statement);
  14. } else if (statement instanceof Delete) {
  15. this.processDelete((Delete) statement);
  16. }
  17. logger.debug("parser sql: " + statement.toString());
  18. return SqlInfo.newInstance().setSql(statement.toString());
  19. }

代码示例来源:origin: baomidou/mybatis-plus

  1. @Test
  2. void parser() throws Exception {
  3. Select select = (Select) CCJSqlParserUtil.parse("SELECT a,b,c FROM tableName t WHERE t.col = 9 and b=c LIMIT 3, ?");
  4. PlainSelect ps = (PlainSelect) select.getSelectBody();
  5. System.out.println(ps.getWhere().toString());
  6. System.out.println(ps.getSelectItems().get(1).toString());
  7. AndExpression e = (AndExpression) ps.getWhere();
  8. System.out.println(e.getLeftExpression());
  9. }

代码示例来源:origin: pagehelper/Mybatis-PageHelper

  1. /**
  2. * convert to order by sql
  3. *
  4. * @param sql
  5. * @param orderBy
  6. * @return
  7. */
  8. public static String converToOrderBySql(String sql, String orderBy) {
  9. //解析SQL
  10. Statement stmt = null;
  11. try {
  12. stmt = CCJSqlParserUtil.parse(sql);
  13. Select select = (Select) stmt;
  14. SelectBody selectBody = select.getSelectBody();
  15. //处理body-去最外层order by
  16. List<OrderByElement> orderByElements = extraOrderBy(selectBody);
  17. String defaultOrderBy = PlainSelect.orderByToString(orderByElements);
  18. if (defaultOrderBy.indexOf('?') != -1) {
  19. throw new PageException("原SQL[" + sql + "]中的order by包含参数,因此不能使用OrderBy插件进行修改!");
  20. }
  21. //新的sql
  22. sql = select.toString();
  23. } catch (Throwable e) {
  24. throw new PageException("处理排序失败: " + e, e);
  25. }
  26. return sql + " order by " + orderBy;
  27. }

代码示例来源:origin: JSQLParser/JSqlParser

  1. createView.getSelect().getSelectBody().accept(selectVisitor);

代码示例来源:origin: JSQLParser/JSqlParser

  1. insert.getSelect().getSelectBody().accept(selectVisitor);
  2. if (insert.isUseSelectBrackets()) {
  3. buffer.append(")");

代码示例来源:origin: JSQLParser/JSqlParser

  1. buffer.append("(");
  2. Select select = update.getSelect();
  3. select.getSelectBody().accept(selectVisitor);
  4. buffer.append(")");

代码示例来源:origin: pagehelper/Mybatis-PageHelper

  1. /**
  2. * 将sql转换为count查询
  3. *
  4. * @param select
  5. */
  6. public void sqlToCount(Select select, String name) {
  7. SelectBody selectBody = select.getSelectBody();
  8. // 是否能简化count查询
  9. List<SelectItem> COUNT_ITEM = new ArrayList<SelectItem>();
  10. COUNT_ITEM.add(new SelectExpressionItem(new Column("count(" + name +")")));
  11. if (selectBody instanceof PlainSelect && isSimpleCount((PlainSelect) selectBody)) {
  12. ((PlainSelect) selectBody).setSelectItems(COUNT_ITEM);
  13. } else {
  14. PlainSelect plainSelect = new PlainSelect();
  15. SubSelect subSelect = new SubSelect();
  16. subSelect.setSelectBody(selectBody);
  17. subSelect.setAlias(TABLE_ALIAS);
  18. plainSelect.setFromItem(subSelect);
  19. plainSelect.setSelectItems(COUNT_ITEM);
  20. select.setSelectBody(plainSelect);
  21. }
  22. }

代码示例来源:origin: baomidou/mybatis-plus

  1. /**
  2. * insert 语句处理
  3. */
  4. @Override
  5. public void processInsert(Insert insert) {
  6. if (tenantHandler.doTableFilter(insert.getTable().getName())) {
  7. // 过滤退出执行
  8. return;
  9. }
  10. insert.getColumns().add(new Column(tenantHandler.getTenantIdColumn()));
  11. if (insert.getSelect() != null) {
  12. processPlainSelect((PlainSelect) insert.getSelect().getSelectBody(), true);
  13. } else if (insert.getItemsList() != null) {
  14. // fixed github pull/295
  15. ItemsList itemsList = insert.getItemsList();
  16. if (itemsList instanceof MultiExpressionList) {
  17. ((MultiExpressionList) itemsList).getExprList().forEach(el -> el.getExpressions().add(tenantHandler.getTenantId()));
  18. } else {
  19. ((ExpressionList) insert.getItemsList()).getExpressions().add(tenantHandler.getTenantId());
  20. }
  21. } else {
  22. throw ExceptionUtils.mpe("Failed to process multiple-table update, please exclude the tableName or statementId");
  23. }
  24. }

代码示例来源:origin: pagehelper/Mybatis-PageHelper

  1. SelectBody selectBody = select.getSelectBody();
  2. try {

代码示例来源:origin: codingapi/tx-lcn

  1. if (!(lockableSelect.statement().getSelectBody() instanceof PlainSelect)) {
  2. throw new SQLException("non support this query when use control lock.");
  3. PlainSelect plainSelect = (PlainSelect) lockableSelect.statement().getSelectBody();

代码示例来源:origin: pagehelper/Mybatis-PageHelper

  1. SelectBody selectBody = select.getSelectBody();
  2. if (selectBody instanceof SetOperationList) {
  3. selectBody = wrapSetOperationList((SetOperationList) selectBody);

代码示例来源:origin: baomidou/mybatis-plus

  1. try {
  2. Select selectStatement = (Select) CCJSqlParserUtil.parse(sql);
  3. PlainSelect plainSelect = (PlainSelect) selectStatement.getSelectBody();
  4. Distinct distinct = plainSelect.getDistinct();
  5. List<Expression> groupBy = plainSelect.getGroupByColumnReferences();

代码示例来源:origin: baomidou/mybatis-plus

  1. List<Join> joins = null;
  2. if (statement instanceof Select) {
  3. PlainSelect plainSelect = (PlainSelect) ((Select) statement).getSelectBody();
  4. where = plainSelect.getWhere();
  5. table = (Table) plainSelect.getFromItem();

相关文章