/**
* 获取指定页的记录
*
* @param sql
* 要执行的sql
* @param args
* 要执行sql的参数
* @param req
* 页面传递的参数
* @return PageObject
*/
public PageObject queryForMPageList(String sql, Object[] args, Map req) {
int totalCount = 1;
int start = NumberUtils.toInt(ObjectUtils.toString(req.get("start"),
"1"));
int limit = NumberUtils.toInt(ObjectUtils.toString(req.get("limit"),
"25"));
String sort = ObjectUtils.toString(req.get("sort"));
String dir = ObjectUtils.toString(req.get("dir"));
System.out.println("sort是"+sort+",dir是"+dir);
StringBuffer buildsql = new StringBuffer();
buildsql.append("select * from (");
buildsql.append(" select rownum temp_num,temp.* from (");
if (sort != null && !"".equals(sort)) {
String pa = "order by (,|\\.|\\w|\\d| )+( asc| desc)?( Nulls last)?( Nulls first)?\\s?$";
String re = " order by " + sort + " " + dir;
System.out.println("re是"+re);
Matcher matcher = Pattern.compile(pa, Pattern.CASE_INSENSITIVE)
.matcher(sql);
if (matcher.find()) {
buildsql.append(matcher.replaceFirst(re));
System.out.println("matcher.replaceFirst(re)是"+matcher.replaceFirst(re));
}
} else {
buildsql.append(sql);
}
buildsql.append(" ) temp where rownum<="
+ String.valueOf(start + limit));
buildsql.append(") where temp_num>" + String.valueOf(start));
List list = super.getJdbcTemplate().queryForList(buildsql.toString(),
args);
String countsql = "select count(*) from (" + sql + ")";
totalCount = super.getJdbcTemplate().queryForInt(countsql, args);
PageObject page = new PageObject();
page.setDatasource(list);
page.setTotalCount(totalCount);
int _absolutePage = (int)Math.ceil(totalCount * 1.0/limit);
page.setAbsolutePage(_absolutePage);
int _currentPage = start/limit + 1;
page.setCurrentPage(_currentPage);
return page;
}
分享到:
相关推荐
本文将详细介绍如何在WPF中使用C#实现DataGrid的分页功能。 首先,我们需要理解WPF DataGrid的基本用法。DataGrid通常与ObservableCollection或ICollectionView一起使用,以动态显示数据源中的数据。...
在 Js 代码中,可以使用 PageHelper 分页插件提供的 PageInfo 对象来处理分页数据: ```javascript function searchpage() { var sys_user = { id: $("#id").val(), name: $("#name").val(), // ... }; $....
### ASP.NET 分页技术详解:使用 QueryString 方式实现简单高效分页 #### 一、引言 在 Web 开发中,特别是在数据展示时,为了提高用户体验和减轻服务器负担,通常会采用分页的方式来展示数据。ASP.NET 提供了多种...
本话题主要探讨如何使用自定义的Java分页标签来实现带条件的分页查询,这将帮助开发者更好地控制和优化数据检索。 首先,我们需要了解分页的基本原理。分页查询是通过限制数据库查询返回的结果数量,每次只获取一...
为了实现分页功能,我们需要定义一个 DTO(Data Transfer Object),用于传输分页请求参数。DTO 是一个轻量级的对象,用于在应用层和展现层之间传输数据。在我们的示例中,我们定义了一个名为 GetTasksInput 的 DTO...
本篇将详细介绍如何使用JSP来实现分页显示。 首先,我们需要理解分页的基本原理。分页通常涉及到两个关键参数:当前页码和每页显示的条目数。通过这两个参数,我们可以计算出当前页的数据范围,然后从数据库中查询...
1. **查询策略**:在数据库层面,我们可以使用SQL语句配合`LIMIT`和`OFFSET`(在MySQL中)或`FETCH NEXT`和`OFFSET`(在SQL Server中)来实现分页查询。例如,PageSQL.java可能包含以下代码: ```java public List...
本篇将详细介绍如何在WPF中使用`DataGrid`实现简单的数据分页。 首先,理解`DataGrid`的基本用法。`DataGrid` 可以通过绑定到数据源来动态显示数据,数据源可以是各种类型,如`ObservableCollection<T>`、`...
在实际项目中,可能需要封装成DAO(Data Access Object)层或使用ORM框架如Hibernate、MyBatis等来提高代码的可维护性和复用性。 在OracleAdd_Show这个压缩包文件中,可能包含了实现这些功能的相关代码或示例,你...
在IT行业中,DAO(Data Access Object)设计模式是一种常见的用于分离业务逻辑与数据访问操作的设计模式。在JSP(JavaServer Pages)应用中,DAO模式的运用能够有效地提高代码的可维护性和可重用性。本主题将深入...
第二种方式是使用ORM(Object-Relational Mapping)框架,比如Hibernate。Hibernate提供了方便的分页API,我们只需要在HQL(Hibernate Query Language)或Criteria查询中设置分页参数即可。例如: ```java Query ...
本文将详细介绍如何使用名为`page_targetlib`的分页控件来实现高效、简洁的分页功能。 `page_targetlib`是一个Java库,它提供了一个名为`page_targetlib.jar`的可执行文件,这个文件包含了实现分页功能所需的所有类...
使用在线分页 办法 直接调用 public List showPage(int pageSize,int page,ArrayList<Object> list) 方法即可。 使用离线分页 办法 调用 public boolean checkList() 判断 当前实体 中 param: list 是否为空 空则...
在Java项目中,分页是常见的数据查询需求,特别是在大数据量的场景下,如ClickHouse数据库的使用。PageHelper是一个非常流行的MyBatis插件,它提供了强大的分页功能,但有时我们可能出于某些原因不希望引入额外的...
例如,在JavaScript中,我们可以使用DOM(Document Object Model)或者jQuery的`.parseXML()`方法来解析XML: ```javascript var xmlData = '<database>...'; // XML字符串 var xmlDoc = $.parseXML(xmlData); var ...
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataBindProduct(PageIndex); } } ``` 在页面加载时,判断是否为回发操作。如果不是,则调用`DataBindProduct`方法进行数据...
Bootstrap Table是一种基于...通过这个客户端分页实例,初学者可以快速掌握如何使用Bootstrap Table创建具有分页功能的表格,进一步提升网页的数据展示能力。同时,这也是理解前端数据处理和用户交互设计的良好实践。
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { // 假设ds是从数据库或其他数据源获取的数据集 DataSet ds = GetData(); DataGrid1.DataSource = ds; DataGrid1.DataBind(); } ...
public static int currentPage = 1; // 当前页 public static int totalPage = 0; // 总页数 public static int RowPerPage = 5; // 每页的行数 public static int column = 0; // 列数 public static int ...
在本文中,我们将深入探讨如何使用JSP、Servlet和MyBatis这三种技术来实现一个分页查询的功能。这是一个常见的需求,在许多Web应用程序中,为了提高用户体验,通常需要将大量数据分批次展示,而不是一次性加载所有...