Java源码示例:net.sf.jsqlparser.expression.operators.relational.GreaterThan

示例1
public GreaterThanExpressionConverter(){
    setJsqlparserExpressionSupplier(new Supplier<GreaterThanExpression, GreaterThan>() {
        @Override
        public GreaterThan get(GreaterThanExpression input) {
            return new GreaterThan();
        }
    });
}
 
示例2
@Override
public Class<GreaterThan> getJSqlParserExpressionClass() {
    return GreaterThan.class;
}
 
示例3
@Override
public void visit(GreaterThan greaterThan) {
    visitBinaryExpression(greaterThan);
}
 
示例4
@Override
public void visit(GreaterThan expr) {
  invalid = true;
  super.visit(expr);
}
 
示例5
/**
 * 获取一个外层包装的TOP查询
 *
 * @param select
 * @return
 */
private Select getPageSelect(Select select, String orderBy) {
    SelectBody selectBody = select.getSelectBody();
    if (selectBody instanceof SetOperationList) {
        selectBody = wrapSetOperationList((SetOperationList) selectBody);
    }
    //这里的selectBody一定是PlainSelect
    if (((PlainSelect) selectBody).getTop() != null) {
        throw new RuntimeException("被分页的语句已经包含了Top,不能再通过分页插件进行分页查询!");
    }
    //获取查询列
    List<SelectItem> selectItems = getSelectItems((PlainSelect) selectBody);
    //对一层的SQL增加ROW_NUMBER()
    addRowNumber((PlainSelect) selectBody, orderBy);
    //处理子语句中的order by
    processSelectBody(selectBody, 0);

    //新建一个select
    Select newSelect = new Select();
    PlainSelect newSelectBody = new PlainSelect();
    //设置top
    Top top = new Top();
    top.setRowCount(Long.MAX_VALUE);
    newSelectBody.setTop(top);
    //设置order by
    List<OrderByElement> orderByElements = new ArrayList<OrderByElement>();
    OrderByElement orderByElement = new OrderByElement();
    orderByElement.setExpression(PAGE_ROW_NUMBER_COLUMN);
    orderByElements.add(orderByElement);
    newSelectBody.setOrderByElements(orderByElements);
    //设置where
    GreaterThan greaterThan = new GreaterThan();
    greaterThan.setLeftExpression(PAGE_ROW_NUMBER_COLUMN);
    greaterThan.setRightExpression(new LongValue(Long.MIN_VALUE));
    newSelectBody.setWhere(greaterThan);
    //设置selectItems
    newSelectBody.setSelectItems(selectItems);
    //设置fromIterm
    SubSelect fromItem = new SubSelect();
    fromItem.setSelectBody(selectBody);
    fromItem.setAlias(PAGE_TABLE_ALIAS);
    newSelectBody.setFromItem(fromItem);

    newSelect.setSelectBody(newSelectBody);
    if (isNotEmptyList(select.getWithItemsList())) {
        newSelect.setWithItemsList(select.getWithItemsList());
    }
    return newSelect;
}
 
示例6
/**
 * 获取一个外层包装的TOP查询
 *
 * @param select
 * @return
 */
protected Select getPageSelect(Select select) {
    SelectBody selectBody = select.getSelectBody();
    if (selectBody instanceof SetOperationList) {
        selectBody = wrapSetOperationList((SetOperationList) selectBody);
    }
    //这里的selectBody一定是PlainSelect
    if (((PlainSelect) selectBody).getTop() != null) {
        throw new PageException("被分页的语句已经包含了Top,不能再通过分页插件进行分页查询!");
    }
    //获取查询列
    List<SelectItem> selectItems = getSelectItems((PlainSelect) selectBody);
    //对一层的SQL增加ROW_NUMBER()
    List<SelectItem> autoItems = new ArrayList<SelectItem>();
    SelectItem orderByColumn = addRowNumber((PlainSelect) selectBody, autoItems);
    //加入自动生成列
    ((PlainSelect) selectBody).addSelectItems(autoItems.toArray(new SelectItem[autoItems.size()]));
    //处理子语句中的order by
    processSelectBody(selectBody, 0);

    //中层子查询
    PlainSelect innerSelectBody = new PlainSelect();
    //PAGE_ROW_NUMBER
    innerSelectBody.addSelectItems(orderByColumn);
    innerSelectBody.addSelectItems(selectItems.toArray(new SelectItem[selectItems.size()]));
    //将原始查询作为内层子查询
    SubSelect fromInnerItem = new SubSelect();
    fromInnerItem.setSelectBody(selectBody);
    fromInnerItem.setAlias(PAGE_TABLE_ALIAS);
    innerSelectBody.setFromItem(fromInnerItem);

    //新建一个select
    Select newSelect = new Select();
    PlainSelect newSelectBody = new PlainSelect();
    //设置top
    Top top = new Top();
    top.setExpression(new LongValue(Long.MAX_VALUE));
    newSelectBody.setTop(top);
    //设置order by
    List<OrderByElement> orderByElements = new ArrayList<OrderByElement>();
    OrderByElement orderByElement = new OrderByElement();
    orderByElement.setExpression(PAGE_ROW_NUMBER_COLUMN);
    orderByElements.add(orderByElement);
    newSelectBody.setOrderByElements(orderByElements);
    //设置where
    GreaterThan greaterThan = new GreaterThan();
    greaterThan.setLeftExpression(PAGE_ROW_NUMBER_COLUMN);
    greaterThan.setRightExpression(new LongValue(Long.MIN_VALUE));
    newSelectBody.setWhere(greaterThan);
    //设置selectItems
    newSelectBody.setSelectItems(selectItems);
    //设置fromIterm
    SubSelect fromItem = new SubSelect();
    fromItem.setSelectBody(innerSelectBody); //中层子查询
    fromItem.setAlias(PAGE_TABLE_ALIAS);
    newSelectBody.setFromItem(fromItem);

    newSelect.setSelectBody(newSelectBody);
    if (isNotEmptyList(select.getWithItemsList())) {
        newSelect.setWithItemsList(select.getWithItemsList());
    }
    return newSelect;
}
 
示例7
@Override
public void visit(GreaterThan greaterThan) {
	visitBinary(greaterThan, false);
	
	
}