/** * 获取分页查询sql <功能详细描述> [参数说明] * * @return void [返回类型说明] * @exception throws [异常类型] [异常说明] * @see [类、类#方法、类#成员] */ public String queryPagedSql(Object obj, int pageIndex, int pageSize) { String querySql = querySql(obj); int offset = pageSize * (pageIndex - 1); int limit = pageSize * pageIndex; final boolean isSupportsVariableLimit = dialect.supportsVariableLimit(); // 是否支持物理分页 final boolean isSupportsLimit = dialect.supportsLimit(); // 是否支持limit final boolean isSupportsLimitOffset = dialect.supportsLimitOffset(); // 是否支持offset // 如果不支持物理分页,直接返回sql if (!isSupportsVariableLimit || (!isSupportsLimit && !isSupportsLimitOffset)) { return querySql; } else { // 如果支持 String limitSql = dialect.getLimitString(querySql, offset, limit); return limitSql; } }
/** * Discription:[获取经过组装分页之后的sql语句] * * @param dialect Hibernate配置中的方言 * @param query sql语句 * @param offset 分页start * @param limit 分页limit * @return * @author:[代超] * @update:[日期YYYY-MM-DD] [更改人姓名][变更描述] */ public static String getHibernateLimitString( Dialect dialect, String query, int offset, int limit) { return dialect.getLimitString(query, offset, limit); }