use of com.jfinal.plugin.activerecord.Page in project jfinal by jfinal.
the class AnsiSqlDialect method takeOverModelPaginate.
@SuppressWarnings({ "rawtypes", "unchecked" })
public Page<? extends Model> takeOverModelPaginate(Connection conn, Class<? extends Model> modelClass, int pageNumber, int pageSize, Boolean isGroupBySql, String select, String sqlExceptSelect, Object... paras) throws Exception {
String totalRowSql = "select count(*) " + replaceOrderBy(sqlExceptSelect);
List result = CPI.query(conn, totalRowSql, paras);
int size = result.size();
if (isGroupBySql == null) {
isGroupBySql = size > 1;
}
long totalRow;
if (isGroupBySql) {
totalRow = size;
} else {
totalRow = (size > 0) ? ((Number) result.get(0)).longValue() : 0;
}
if (totalRow == 0) {
// totalRow = 0;
return new Page(new ArrayList(0), pageNumber, pageSize, 0, 0);
}
int totalPage = (int) (totalRow / pageSize);
if (totalRow % pageSize != 0) {
totalPage++;
}
if (pageNumber > totalPage) {
return new Page(new ArrayList(0), pageNumber, pageSize, totalPage, (int) totalRow);
}
// --------
StringBuilder sql = new StringBuilder();
sql.append(select).append(" ").append(sqlExceptSelect);
PreparedStatement pst = conn.prepareStatement(sql.toString(), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
for (int i = 0; i < paras.length; i++) {
pst.setObject(i + 1, paras[i]);
}
ResultSet rs = pst.executeQuery();
// move the cursor to the start
int offset = pageSize * (pageNumber - 1);
for (int i = 0; i < offset; i++) {
if (!rs.next()) {
break;
}
}
List list = buildModel(rs, modelClass, pageSize);
if (rs != null)
rs.close();
if (pst != null)
pst.close();
return new Page(list, pageNumber, pageSize, totalPage, (int) totalRow);
}
use of com.jfinal.plugin.activerecord.Page in project jfinal by jfinal.
the class AnsiSqlDialect method takeOverDbPaginate.
@SuppressWarnings("rawtypes")
public Page<Record> takeOverDbPaginate(Connection conn, int pageNumber, int pageSize, Boolean isGroupBySql, String select, String sqlExceptSelect, Object... paras) throws SQLException {
String totalRowSql = "select count(*) " + replaceOrderBy(sqlExceptSelect);
List result = CPI.query(conn, totalRowSql, paras);
int size = result.size();
if (isGroupBySql == null) {
isGroupBySql = size > 1;
}
long totalRow;
if (isGroupBySql) {
totalRow = size;
} else {
totalRow = (size > 0) ? ((Number) result.get(0)).longValue() : 0;
}
if (totalRow == 0) {
return new Page<Record>(new ArrayList<Record>(0), pageNumber, pageSize, 0, 0);
}
int totalPage = (int) (totalRow / pageSize);
if (totalRow % pageSize != 0) {
totalPage++;
}
if (pageNumber > totalPage) {
return new Page<Record>(new ArrayList<Record>(0), pageNumber, pageSize, totalPage, (int) totalRow);
}
StringBuilder sql = new StringBuilder();
sql.append(select).append(" ").append(sqlExceptSelect);
PreparedStatement pst = conn.prepareStatement(sql.toString(), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
for (int i = 0; i < paras.length; i++) {
pst.setObject(i + 1, paras[i]);
}
ResultSet rs = pst.executeQuery();
// move the cursor to the start
int offset = pageSize * (pageNumber - 1);
for (int i = 0; i < offset; i++) {
if (!rs.next()) {
break;
}
}
List<Record> list = buildRecord(rs, pageSize);
if (rs != null)
rs.close();
if (pst != null)
pst.close();
return new Page<Record>(list, pageNumber, pageSize, totalPage, (int) totalRow);
}
use of com.jfinal.plugin.activerecord.Page in project jfinal by jfinal.
the class AnsiSqlDialect method takeOverDbPaginate.
@SuppressWarnings("rawtypes")
public Page<Record> takeOverDbPaginate(Connection conn, int pageNumber, int pageSize, Boolean isGroupBySql, String totalRowSql, StringBuilder findSql, Object... paras) throws SQLException {
// String totalRowSql = "select count(*) " + replaceOrderBy(sqlExceptSelect);
List result = CPI.query(conn, totalRowSql, paras);
int size = result.size();
if (isGroupBySql == null) {
isGroupBySql = size > 1;
}
long totalRow;
if (isGroupBySql) {
totalRow = size;
} else {
totalRow = (size > 0) ? ((Number) result.get(0)).longValue() : 0;
}
if (totalRow == 0) {
return new Page<Record>(new ArrayList<Record>(0), pageNumber, pageSize, 0, 0);
}
int totalPage = (int) (totalRow / pageSize);
if (totalRow % pageSize != 0) {
totalPage++;
}
if (pageNumber > totalPage) {
return new Page<Record>(new ArrayList<Record>(0), pageNumber, pageSize, totalPage, (int) totalRow);
}
// StringBuilder sql = new StringBuilder();
// sql.append(select).append(" ").append(sqlExceptSelect);
PreparedStatement pst = conn.prepareStatement(findSql.toString(), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
for (int i = 0; i < paras.length; i++) {
pst.setObject(i + 1, paras[i]);
}
ResultSet rs = pst.executeQuery();
// move the cursor to the start
int offset = pageSize * (pageNumber - 1);
for (int i = 0; i < offset; i++) {
if (!rs.next()) {
break;
}
}
List<Record> list = buildRecord(rs, pageSize);
if (rs != null)
rs.close();
if (pst != null)
pst.close();
return new Page<Record>(list, pageNumber, pageSize, totalPage, (int) totalRow);
}
use of com.jfinal.plugin.activerecord.Page in project jfinal by jfinal.
the class AnsiSqlDialect method takeOverModelPaginate.
@SuppressWarnings({ "rawtypes", "unchecked" })
public Page<? extends Model> takeOverModelPaginate(Connection conn, Class<? extends Model> modelClass, int pageNumber, int pageSize, Boolean isGroupBySql, String totalRowSql, StringBuilder findSql, Object... paras) throws Exception {
// String totalRowSql = "select count(*) " + replaceOrderBy(sqlExceptSelect);
List result = CPI.query(conn, totalRowSql, paras);
int size = result.size();
if (isGroupBySql == null) {
isGroupBySql = size > 1;
}
long totalRow;
if (isGroupBySql) {
totalRow = size;
} else {
totalRow = (size > 0) ? ((Number) result.get(0)).longValue() : 0;
}
if (totalRow == 0) {
// totalRow = 0;
return new Page(new ArrayList(0), pageNumber, pageSize, 0, 0);
}
int totalPage = (int) (totalRow / pageSize);
if (totalRow % pageSize != 0) {
totalPage++;
}
if (pageNumber > totalPage) {
return new Page(new ArrayList(0), pageNumber, pageSize, totalPage, (int) totalRow);
}
// --------
// StringBuilder sql = new StringBuilder();
// sql.append(select).append(" ").append(sqlExceptSelect);
PreparedStatement pst = conn.prepareStatement(findSql.toString(), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
for (int i = 0; i < paras.length; i++) {
pst.setObject(i + 1, paras[i]);
}
ResultSet rs = pst.executeQuery();
// move the cursor to the start
int offset = pageSize * (pageNumber - 1);
for (int i = 0; i < offset; i++) {
if (!rs.next()) {
break;
}
}
List list = buildModel(rs, modelClass, pageSize);
if (rs != null)
rs.close();
if (pst != null)
pst.close();
return new Page(list, pageNumber, pageSize, totalPage, (int) totalRow);
}