
sf.database.jdbc.handle.PageListHandler Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sorm Show documentation
Show all versions of sorm Show documentation
java jpa tool for spring
The newest version!
package sf.database.jdbc.handle;
import sf.database.jdbc.rowmapper.RowMapper;
import sf.database.jdbc.sql.ResultSetCallback;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* 假分页
* @param
*/
public class PageListHandler implements ResultSetCallback> {
private RowMapper mapper;
private int first;
private int max;
public PageListHandler(RowMapper mapper) {
this.mapper = mapper;
}
@Override
public List callback(ResultSet rs) throws SQLException {
if (first > 1) {
int i = 1;
//sqlite不支持rs.absolute(first - 1);滚动结果集.
boolean succ = false;
while (i < first) {
succ = rs.next();
if (!succ) {
break;
}
i++;
}
if (!succ) {
return Collections.emptyList();
}
}
List rows = new ArrayList();
int count = 0;
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
rows.add(mapper.handle(rs, rsmd, count++));
if (max > 0 && rows.size() >= max) {
break;
}
}
return rows;
}
public void setFirstResult(int first) {
this.first = first;
}
public void setMaxResults(int max) {
this.max = max;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy