예제 #1
0
  /**
   * 获取分页查询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;
    }
  }
예제 #2
0
 /**
  * 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);
 }