struts2之使用oracle分页(10)
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)的更多相关文章
- 【SQL】Oracle分页查询的三种方法
		
[SQL]Oracle分页查询的三种方法 采用伪列 rownum 查询前10条记录 ? 1 2 3 4 5 6 7 8 9 10 11 [sql] select * from t_user t whe ...
 - Oracle 分页原理
		
oracle rownum 及分页处理的使用方法 在实际应用中我们经常碰到这样的问题,比如一张表比较大,我们只要其中的查看其中的前几条数据,或者对分页处理数据.在这些情况下我们都需要用到rownum. ...
 - 说说oracle分页的sql语句
		
说说oracle分页的sql语句,分排序和不排序两种. 当结果集不需要进行排序时,每页显示条数为:rowPerPage,当前页数为:currentPage. 1. 相对来说,这种查询速度会快一些,因为 ...
 - PHP oracle分页
		
oracle分页 function getall($query, $start=0, $rows=-1) { $this->dbh = oci_connect('aaa','mmm'," ...
 - oracle分页与rownum
		
Oracle分页(limit方式的运用) Oracle不支持类似于 MySQL 中的 limit. 但你还是可以rownum来限制返回的结果集的行数. 第一种 select * from a_matr ...
 - Oracle 分页方法研究
		
1.Oracle 中的三大分页方法 1.1.通过分析函数分页 1.2.通过 ROWNUM 分页 1.3.通过 ROWID 分页 2.Oracle 分页解决方案浅析 2.1.纯后端代码完成分页 2.2. ...
 - MySQL oracle 分页
		
(1)MySql的Limit m,n语句 Limit后的两个参数中,参数m是起始下标,它从0开始:参数n是返回的记录数.我们需要分页的话指定这两个值即可. 比如:查询10行记录,起始行从3开始 SEL ...
 - Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象
		
作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...
 - mysql和oracle分页查询
		
MYSQL分页查询 方式1: select * from table order by id limit m, n; 该语句的意思为,查询m+n条记录,去掉前m条,返回后n条记录.无疑该查询能够实现分 ...
 
随机推荐
- uwp,GridView、ListView取消选中效果
			
在SelectionChanged事件中,添加两行代码,取消点击Item后的选中效果 void GridViewSelectionChanged(object sender, SelectionCha ...
 - S3. Android 消息推送
			
[概要] 消息推送
 - 消息中间件——RocketMQ(一) 环境搭建(完整版)
			
每章一点正能量:每当你想要放弃的时候,就想想是为了什么才一路坚持到现在. 前言 最近在回顾复习Java基础中的一些知识点,发现了一些以前见过但是没有留意却特别有意思的知识特性,比如这次想分享的Java ...
 - Office 2016、2019 与 Office 365 的区别
			
点开观看更清晰:
 - 一个好隐蔽的C/C++代码bug
			
来自:微博@ruanyf, 一本书上说,下面的 C 语言代码可能会产生无限循环.看了半天,才意识到 Bug 在哪里. 完美解答: 数组下标越界.数组a总共有10个值,a[0]~a[9].for循环里面 ...
 - C 循环统计输入的单词个数和字符长度
			
C 循环统计输入的单词个数和字符长度 #include <stdio.h> #include <Windows.h> int main(void) { ]; ; ; print ...
 - WUST Oracle数据库 实验一实验二
			
链接:https://pan.baidu.com/s/1hCzvTLzXhyItP2gD_69gzg 提取码:j68f 复制这段内容后打开百度网盘手机App,操作更方便哦
 - Vue CLI 3开发中屏蔽的EsLint错误 (.eslintrc.js  在vue3+中 修改这个)
			
1.关闭eslint校验有了eslint的校验,可以来规范开发人员的代码,是挺好的.但是有些像缩进.空格.空白行之类的规范,在开发过程中一直报错,未免太过于苛刻了.所以,我还是会选择关闭eslint校 ...
 - Linux yum安装java环境
			
1.jdk 1.8 #系统版本 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) #安装 ...
 - (三)springmvc之注解的基本使用
			
一.@Controller @Controller 标记一个类是Controller 二.RequestMapping 地址映射 2.1 Value的操作. 注解在类上面 (父) ...