ToolsUtil

//每页显示的记录数
public static final int NUM_PER_PAGE=5;
/*
* java.util.Date转java.sql.Date
*/
public static Date utilDateToSqlDate(java.util.Date d){
Date date = new Date(d.getTime());
return date;
}
public static String getPageSQL(String tableName,String orderedColumn){
return "select * from (select t2.*,rownum r from "
+ "(select * from "+tableName+" t1 order by "+orderedColumn+") t2) t3 where r>? and r<=?";
}
//获取总页数
public static int getPageCount(int count,int NumPerPage){
return (count%NumPerPage==0)?(count/NumPerPage):(count/NumPerPage+1);
}

dao

//列表,带有分页
public List<User> findAllByPage(int pagenum);
//数据的总数
public int Count()

@Override
public List<User> findAllByPage(int pagenum) {
// TODO Auto-generated method stub
try {
connection = DBUtil.getConnection();
String sql = ToolsUtil.getPageSQL("t_user", "id");
p = connection.prepareStatement(sql);
//pagenum 页码
//pagenum页开始的第n条数据
int begin = (pagenum-1)*ToolsUtil.NUM_PER_PAGE;
//pagenum页结束的第n条数据
int end = pagenum*ToolsUtil.NUM_PER_PAGE;
p.setInt(1, begin);
p.setInt(2, end);
set = p.executeQuery();
List<User> list = new ArrayList<User>();
while(set.next()){
User user = new User();
user.setId(set.getInt("id"));
user.setUsername(set.getString("username"));
user.setPassword(set.getString("password"));
user.setSex(set.getInt("sex"));
user.setAge(set.getInt("age"));
user.setSalary(set.getDouble("salary"));
user.setAddress(set.getString("address"));
user.setPhone(set.getString("phone"));
list.add(user);
}
return list;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return null;
}
@Override
public int Count() {
// TODO Auto-generated method stub
try {
connection = DBUtil.getConnection();
String sql = "select count(*) from t_user";
p = connection.prepareStatement(sql);
set = p.executeQuery();
int count = 0;
if (set.next()) {
//查询出一个int值,如果有,则set.getInt(1)赋值给num
int num = set.getInt(1);
count = num;
}
return count;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}

servlet

//列表,分页
public List<User> findAllByPage(int pagenum);
public int Count();

@Override
public List<User> findAllByPage(int pagenum) {
// TODO Auto-generated method stub
return userDao.findAllByPage(pagenum);
}

@Override
public int Count() {
// TODO Auto-generated method stub
return userDao.Count();
}

action

//全局变量,getset方法

//该属性用于接收前台页面提交的页码
private int pagenum = 1;
//总页数,用于传到前台进行循环,显示所有页码
private int pageCount;

public String listByPage(){
userlist = userService.findAllByPage(pagenum);
int totalCount = userService.Count();
pageCount = ToolsUtil.getPageCount(totalCount, ToolsUtil.NUM_PER_PAGE);
return SUCCESS;
}

前台

<!--页码
begin 从第一条数据
end 到最后一条数据
step 依次加一
var="p" 代表${pageCount } -->
<c:forEach begin="1" end="${pageCount }" step="1" var="p">
<c:if test="${pagenum==p }">
${p}
</c:if>
<c:if test="${pagenum != p }">
<a href="user_list?pagenum=${p }">${p }</a>
</c:if>
</c:forEach>
跳转到<input type="text" id="page" size="2px" value="${pagenum }"/>页
<a id="pa" onclick="pade('page','pa','user_list')">确定</a>

<!--pade('page','pa','user_list')

分别是input的id,a标签的id,和action-->

<script type="text/javascript">
function pade(pageid,paid,action){
var page = document.getElementById(pageid).value;
var pageCount = ${pageCount};
if(page<0){
document.getElementById(pa).href=action+"?pagenum = ${pagenum}";
}
else if(page<=pageCount){
document.getElementById(paid).href = action + "?pagenum=" + page;
}
else{
document.getElementById(pa).href=action+"?pagenum ="+pageCount;
}
}
</script>

struts2之使用oracle分页(10)的更多相关文章

  1. 【SQL】Oracle分页查询的三种方法

    [SQL]Oracle分页查询的三种方法 采用伪列 rownum 查询前10条记录 ? 1 2 3 4 5 6 7 8 9 10 11 [sql] select * from t_user t whe ...

  2. Oracle 分页原理

    oracle rownum 及分页处理的使用方法 在实际应用中我们经常碰到这样的问题,比如一张表比较大,我们只要其中的查看其中的前几条数据,或者对分页处理数据.在这些情况下我们都需要用到rownum. ...

  3. 说说oracle分页的sql语句

    说说oracle分页的sql语句,分排序和不排序两种. 当结果集不需要进行排序时,每页显示条数为:rowPerPage,当前页数为:currentPage. 1. 相对来说,这种查询速度会快一些,因为 ...

  4. PHP oracle分页

    oracle分页 function getall($query, $start=0, $rows=-1) { $this->dbh = oci_connect('aaa','mmm'," ...

  5. oracle分页与rownum

    Oracle分页(limit方式的运用) Oracle不支持类似于 MySQL 中的 limit. 但你还是可以rownum来限制返回的结果集的行数. 第一种 select * from a_matr ...

  6. Oracle 分页方法研究

    1.Oracle 中的三大分页方法 1.1.通过分析函数分页 1.2.通过 ROWNUM 分页 1.3.通过 ROWID 分页 2.Oracle 分页解决方案浅析 2.1.纯后端代码完成分页 2.2. ...

  7. MySQL oracle 分页

    (1)MySql的Limit m,n语句 Limit后的两个参数中,参数m是起始下标,它从0开始:参数n是返回的记录数.我们需要分页的话指定这两个值即可. 比如:查询10行记录,起始行从3开始 SEL ...

  8. Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...

  9. mysql和oracle分页查询

    MYSQL分页查询 方式1: select * from table order by id limit m, n; 该语句的意思为,查询m+n条记录,去掉前m条,返回后n条记录.无疑该查询能够实现分 ...

随机推荐

  1. rsyslog服务日志报错分析1

    客户问题: 最近对服务器进行日志检查时,发现部分主机的rsyslog服务状态有报错,报错详情如下 排查过程: 1.从报错截图来看,报错主要发生在文件'/usr/lib64/rsyslog/omazur ...

  2. 【转帖】Linux 内核系统架构

    Linux 内核系统架构   描述Linux内核的文章已经有上亿字了 但是对于初学者,还是应该多学习多看,毕竟上亿字不能一下子就明白的. 即使看了所有的Linux 内核文章,估计也还不是很明白,这时候 ...

  3. java - redis学习

    在学习redis之前,我们首先需要了解一下NoSQL(非关系数据库).非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定. 为什么需要NoSQL? (1) ...

  4. 病毒 | wordpress网站内容被篡改、自动跳转、变全英文的解决办法

    去年10月开始,网站经常有文章被莫名其妙的篡改,而且后面还经常出现跳转到色情网站的问题,让人烦不胜烦,困扰了好几个月,最后终于解决了.这里特次记录和总结下此次恼人的事件. 时间:2018年10月 问题 ...

  5. EXTI中断开关点亮LED源码

    在KEY点亮LED源码的基础上 USER下新建EXIT文件夹,新建bsp_exit.c和bsp_exit.h,添加到工程中(魔术棒添加头文件所在文件夹) bsp_exit.h内容 #ifndef BS ...

  6. win7+cuda+anaconda python+tensorflow-gpu+keras安装成功版本匹配汇总

    win7+cuda+anaconda python+tensorflow-gpu+keras安装成功版本匹配汇总 2019-09-20 15:06:03 wyx100 阅读数 38更多 分类专栏: M ...

  7. CentOS7.5 安装MySql教程

    CentOS7位安装MySql教程 1.先检查系统是否装有mysql rpm -qa | grep mysql 2.下载mysql的repo源 wget http://repo.mysql.com/m ...

  8. MySQL 多列排序

    MySQL 基础篇 三范式 MySQL 军规 MySQL 配置 MySQL 用户管理和权限设置 MySQL 常用函数介绍 MySQL 字段类型介绍 MySQL 多列排序 MySQL 行转列 列转行 M ...

  9. taglist and nerdtree

    函数:function! s:Tlist_Window_Exit_Only_Window()中的winbunr(2)改为winbunr(3),即只剩2个窗口时关闭,考虑到2个窗口肯定是同时存在,所以这 ...

  10. JS数组抽奖程序教学实例

    数组Javascript中非常重要的知识点,为了在课堂上提高学生兴趣,教学举例的选择就比较重要了. 为了提高学生兴趣,特设计一个可输入,可控制结束的,利用JS数组实现的抽奖教学实例.代码如下: