类 SqlServerParser
java.lang.Object
gu.sql2java.parser.SqlServerParser
将sqlserver查询语句转换为分页语句
注意事项:
注意事项:
- 请先保证你的SQL可以执行
- sql中最好直接包含order by,可以自动从sql提取
- 如果没有order by,可以通过入参提供,但是需要自己保证正确
- 如果sql有order by,可以通过orderby参数覆盖sql中的order by
- order by的列名不能使用别名
- 表和列使用别名的时候不要使用单引号(')
- 作者:
- liuzh
-
字段概要
字段修饰符和类型字段说明protected static final Stringprotected static final Stringprotected static final net.sf.jsqlparser.schema.Columnstatic final Stringstatic final net.sf.jsqlparser.expression.Aliasprotected static final Stringstatic final Stringprotected static final net.sf.jsqlparser.statement.select.Topprotected static final String -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明protected net.sf.jsqlparser.statement.select.SelectItemaddRowNumber(net.sf.jsqlparser.statement.select.PlainSelect plainSelect, List<net.sf.jsqlparser.statement.select.SelectItem> autoItems) 获取 ROW_NUMBER() 列protected net.sf.jsqlparser.statement.select.OrderByElementcloneOrderByElement(net.sf.jsqlparser.statement.select.OrderByElement orig, String alias) 复制 OrderByElementprotected net.sf.jsqlparser.statement.select.OrderByElementcloneOrderByElement(net.sf.jsqlparser.statement.select.OrderByElement orig, net.sf.jsqlparser.expression.Expression expression) 复制 OrderByElementconvertToPageSql(String sql) 转换为分页语句convertToPageSql(String sql, Integer offset, Integer limit) 转换为分页语句protected List<net.sf.jsqlparser.statement.select.OrderByElement>getOrderByElements(net.sf.jsqlparser.statement.select.PlainSelect plainSelect, List<net.sf.jsqlparser.statement.select.SelectItem> autoItems) 获取新的排序列表protected net.sf.jsqlparser.statement.select.SelectgetPageSelect(net.sf.jsqlparser.statement.select.Select select) 获取一个外层包装的TOP查询protected List<net.sf.jsqlparser.statement.select.SelectItem>getSelectItems(net.sf.jsqlparser.statement.select.PlainSelect plainSelect) 获取查询列booleanisNotEmptyList(List<?> list) List不空protected voidprocessFromItem(net.sf.jsqlparser.statement.select.FromItem fromItem, int level) 处理子查询protected voidprocessPlainSelect(net.sf.jsqlparser.statement.select.PlainSelect plainSelect, int level) 处理PlainSelect类型的selectBodyprotected voidprocessSelectBody(net.sf.jsqlparser.statement.select.SelectBody selectBody, int level) 处理selectBody去除Order byprotected net.sf.jsqlparser.statement.select.SelectBodywrapSetOperationList(net.sf.jsqlparser.statement.select.SetOperationList setOperationList) 包装SetOperationList
-
字段详细资料
-
START_ROW
-
PAGE_SIZE
-
WRAP_TABLE
- 另请参阅:
-
PAGE_TABLE_NAME
- 另请参阅:
-
PAGE_TABLE_ALIAS
public static final net.sf.jsqlparser.expression.Alias PAGE_TABLE_ALIAS -
PAGE_ROW_NUMBER
- 另请参阅:
-
PAGE_ROW_NUMBER_COLUMN
protected static final net.sf.jsqlparser.schema.Column PAGE_ROW_NUMBER_COLUMN -
TOP100_PERCENT
protected static final net.sf.jsqlparser.statement.select.Top TOP100_PERCENT -
PAGE_COLUMN_ALIAS_PREFIX
- 另请参阅:
-
-
构造器详细资料
-
SqlServerParser
public SqlServerParser()
-
-
方法详细资料
-
convertToPageSql
转换为分页语句- 参数:
sql-
-
convertToPageSql
转换为分页语句- 参数:
sql-offset-limit-
-
getPageSelect
protected net.sf.jsqlparser.statement.select.Select getPageSelect(net.sf.jsqlparser.statement.select.Select select) 获取一个外层包装的TOP查询- 参数:
select-
-
wrapSetOperationList
protected net.sf.jsqlparser.statement.select.SelectBody wrapSetOperationList(net.sf.jsqlparser.statement.select.SetOperationList setOperationList) 包装SetOperationList- 参数:
setOperationList-
-
getSelectItems
protected List<net.sf.jsqlparser.statement.select.SelectItem> getSelectItems(net.sf.jsqlparser.statement.select.PlainSelect plainSelect) 获取查询列- 参数:
plainSelect-
-
addRowNumber
protected net.sf.jsqlparser.statement.select.SelectItem addRowNumber(net.sf.jsqlparser.statement.select.PlainSelect plainSelect, List<net.sf.jsqlparser.statement.select.SelectItem> autoItems) 获取 ROW_NUMBER() 列- 参数:
plainSelect- 原查询autoItems- 自动生成的查询列- 返回:
- ROW_NUMBER() 列
-
processSelectBody
protected void processSelectBody(net.sf.jsqlparser.statement.select.SelectBody selectBody, int level) 处理selectBody去除Order by- 参数:
selectBody-
-
processPlainSelect
protected void processPlainSelect(net.sf.jsqlparser.statement.select.PlainSelect plainSelect, int level) 处理PlainSelect类型的selectBody- 参数:
plainSelect-
-
processFromItem
protected void processFromItem(net.sf.jsqlparser.statement.select.FromItem fromItem, int level) 处理子查询- 参数:
fromItem-
-
isNotEmptyList
List不空- 参数:
list-
-
cloneOrderByElement
protected net.sf.jsqlparser.statement.select.OrderByElement cloneOrderByElement(net.sf.jsqlparser.statement.select.OrderByElement orig, String alias) 复制 OrderByElement- 参数:
orig- 原 OrderByElementalias- 新 OrderByElement 的排序要素- 返回:
- 复制的新 OrderByElement
-
cloneOrderByElement
protected net.sf.jsqlparser.statement.select.OrderByElement cloneOrderByElement(net.sf.jsqlparser.statement.select.OrderByElement orig, net.sf.jsqlparser.expression.Expression expression) 复制 OrderByElement- 参数:
orig- 原 OrderByElementexpression- 新 OrderByElement 的排序要素- 返回:
- 复制的新 OrderByElement
-
getOrderByElements
protected List<net.sf.jsqlparser.statement.select.OrderByElement> getOrderByElements(net.sf.jsqlparser.statement.select.PlainSelect plainSelect, List<net.sf.jsqlparser.statement.select.SelectItem> autoItems) 获取新的排序列表- 参数:
plainSelect- 原始查询autoItems- 生成的新查询要素- 返回:
- 新的排序列表
-