Derby数据库分页查询

后台Java代码: 

/**
	 * 获取记录总条数
	 * @return
	 */
	public int getSOPTotalSize(){
		int count = 0;
		Connection conn = DBManager.getConnection();
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			ps = conn.prepareStatement("select count(*) as scount from sopbean");
			rs = ps.executeQuery();
			while(rs.next()){
				count = rs.getInt("scount");
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			close(rs, ps);
		}
		return count;
	}
	
	/**
	 * @param page 页码
	 * @param pagecount 一页显示多少行
	 * @return
	 */
	public List<SOPBean> querySOPList(int page, int pagecount){
		List<SOPBean> list = new ArrayList<SOPBean>();
		Connection conn = DBManager.getConnection();
		PreparedStatement ps = null;
		ResultSet rs = null;
		SOPBean bean = null;
		if (conn != null) {
			try {
				ps = conn.prepareStatement("select * from (select row_number() over() as rownum, sopbean.* from sopbean) as temp where rownum>=? and rownum<=? order by serialno");
				ps.setInt(1, (page-1)*pagecount+1);
				ps.setInt(2, page*pagecount);
				rs = ps.executeQuery();
				while(rs.next()){
					bean = new SOPBean();
					bean.setSid(rs.getInt("SID"));
					bean.setSerialno(rs.getString("SERIALNO"));
					bean.setFileName(rs.getString("FILENAME"));
					bean.setFormate(rs.getString("FORMATE"));
					bean.setAuthor(rs.getString("AUTHOR"));
					bean.setPath(rs.getString("PATH"));
					bean.setSize(rs.getString("SIZE"));
					bean.setTrandate(rs.getTimestamp("TRANDATE"));
					list.add(bean);
				}
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				close(rs, ps);
			}
		}
		return list;
	}

 

页面上采用DWR做的,里面的Service是后台公布给前台的类,里面主要实现了从数据库里面查询的方法

前台页面代码:

<script type="text/javascript"
	src="dwr/interface/SOPService.js"></script>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript">

	//分页
	var perNum = 18;  
	var maxPage = 1;
	var curPage = 1;

	function getSopTotalCount(){
		SOPService.getSOPTotalSize(regetSopTotalCount);
	}
	function regetSopTotalCount(count){
		 if(count<=perNum){
			 maxPage = 1;
		 }else if(count%perNum==0){
			 maxPage = Math.floor(count/perNum);
		 }else if(count%perNum!=0){
			 maxPage = Math.floor(count/perNum)+1;
		 }
		 var index = "<span><b>"+curPage+"/"+(maxPage)+"</b></span>";
	     document.getElementById("pagingIndex").innerHTML=index;
	}
	   
	function go(page){
		getSopTotalCount();
	    if (page<=1){
	    	getSOPList(1);
	    	curPage = 1;
	    }else if(page >= maxPage){
	    	getSOPList(maxPage);
	    	curPage = maxPage;
	    }else{
	    	getSOPList(page);
	    	curPage = page;
	    }
	    var index = "<span><b>"+curPage+"/"+(maxPage)+"</b></span>";
		document.getElementById("pagingIndex").innerHTML=index;
	}
	//end

	function initSystem(){
		go(curPage);
	}
	
	Date.prototype.format = function(format){ 
	  var o = { 
	    "M+" : this.getMonth()+1, //month 
	    "d+" : this.getDate(),    //day 
	    "h+" : this.getHours(),   //hour 
	    "m+" : this.getMinutes(), //minute 
	    "s+" : this.getSeconds(), //second 
	    "q+" : Math.floor((this.getMonth()+3)/3),  //quarter 
	    "S" : this.getMilliseconds() //millisecond 
	  } 
	  if(/(y+)/.test(format)) format=format.replace(RegExp.$1, 
	    (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
	  for(var k in o)if(new RegExp("("+ k +")").test(format)) 
	    format = format.replace(RegExp.$1, 
	      RegExp.$1.length==1 ? o[k] : 
	        ("00"+ o[k]).substr((""+ o[k]).length)); 
	  return format; 
	}
	
	var sopData = null;
	
	function getSopID(index){
		var serialnoV = this.sopData[index].serialno;
		return serialnoV;
	}

	function getCid(){
		return window.document.getElementById("cidhidden").value;
	}
	
	function getSOPList(pageNum){
		SOPService.querySOPPageList(pageNum,perNum,getSOPListResult);
	}

	function getSOPListResult(sopList){
		if(sopList.length>0){
			window.document.getElementById("tableLast").style.display="inline";
		}else{
			window.document.getElementById("tableLast").style.display="none";
		}
		this.sopData = sopList;
		var html = "<table width='100%' align='center' bordercolor='#339542;' border='1' style='border-collapse: collapse' cellpadding='0' cellspacing='0'>";
			html+="<tr id='testtr'>";
			html+="<td id='resizehead' style='cursor: col-resize;' οndblclick='setMinWidthForTd()' οnmοusedοwn='MouseDownResizeTd(this)'>";
			html+="<div class='headdiv'>";
			html+="SOP编号";
			html+="</div>";
			html+="</td>";
			html+="<td id='resizehead' style='cursor: col-resize;' οndblclick='setMinWidthForTd()' οnmοusedοwn='MouseDownResizeTd(this)'>";
			html+="<div class='headdiv'>";
			html+="文件名";
			html+="</div>";
			html+="</td>";
			html+="<td id='resizehead' style='cursor: col-resize;' οndblclick='setMinWidthForTd()' οnmοusedοwn='MouseDownResizeTd(this)'>";
			html+="<div class='headdiv'>";
			html+="文件格式";
			html+="</div>";
			html+="</td>";
			html+="<td id='resizehead' style='cursor: col-resize;' οndblclick='setMinWidthForTd()' οnmοusedοwn='MouseDownResizeTd(this)'>";
			html+="<div class='headdiv'>";
			html+="文件大小";
			html+="</div>";
			html+="</td>";
			html+="<td id='resizehead' style='cursor: col-resize;' οndblclick='setMinWidthForTd()' οnmοusedοwn='MouseDownResizeTd(this)'>";
			html+="<div class='headdiv'>";
			html+="存放路径";
			html+="</div>";
			html+="</td>";
			html+="<td id='resizehead' style='cursor: col-resize;' οndblclick='setMinWidthForTd()' οnmοusedοwn='MouseDownResizeTd(this)'>";
			html+="<div class='headdiv'>";
			html+="上传作者";
			html+="</div>";
			html+="</td>";
			html+="<td id='resizehead' style='cursor: col-resize;' οndblclick='setMinWidthForTd()' οnmοusedοwn='MouseDownResizeTd(this)'>";
			html+="<div class='headdiv'>";
			html+="上传日期</div>";
			html+="</td>";
			html+="<td id='resizehead' style='cursor: col-resize;' οndblclick='setMinWidthForTd()' οnmοusedοwn='MouseDownResizeTd(this)'>";
			html+="<div class='headdiv'>";
			html+="操作</div>";
			html+="</td>";
			html+="</tr>";
		 	for(var i=0;i<sopList.length;i++){
			 	var sopBean = sopList[i];
			  	html+=" <tr id='testtr'>";
		      	html+="<td align='center'><a href='ViewSOPServlet?sid="+getSopID(i)+"&cid="+getCid()+"' target='_blank'>"+sopBean.serialno+"</a></td>";
		      	html+="<td align='center'><a href='ViewSOPServlet?sid="+getSopID(i)+"&cid="+getCid()+"' target='_blank'>"+sopBean.fileName+"</a></td>";
		      	html+="<td align='center'>"+sopBean.formate+"</td>";
		      	html+="<td align='center'>"+sopBean.size+"</td>";
		      	html+="<td align='center'>"+sopBean.path+"</td>";
		      	html+="<td align='center'>"+sopBean.author+"</td>";
		      	html+="<td align='center'>"+sopBean.trandate.format("yyyy-MM-dd hh:mm:ss")+"</td>";
		      	html+="<td align='center'><a href='ViewSOPServlet?sid="+getSopID(i)+"&cid="+getCid()+"' target='_blank'>查看</a></td>";
		      	html+="</tr> ";
			}
			html+="</table>";
		 var tableBodyC = window.document.getElementById("tableBody");
	     tableBodyC.innerHTML = html;
	}
</script>
</head>
<body οnlοad="initSystem();">
<div style=" height: 10px; background-color: #339542;">
</div>
<div style=" clear: both; height: 25px;"></div>
<div style=" margin: 0 auto; height: 40px; width: 980px;">
<table border="0" width="100%" height="100%">
<tr><td width="300"><img src="images/logo.jpg" /></td><td></td></tr>
<tr><td></td><td></td></tr>
</table>
<hr>
</div>
<div style=" clear: both; height: 50px;"></div>
<div style=" margin:0 auto; height: 30px; width: 980px;">
<div style=" float: left;"><input id="cidhidden" type="hidden" value="${user.cid}">${user.name},欢迎您登录SOP阅读系统,您当前系统IP为:<span>${user.ip}</span></div>
<div style=" float: right;">
<%if(userBean.getRights()==2){ %>
<span id="superdiv"><a href="admin/usermanager.jsp">用户管理</a> | </span>
<%} %>
<%if(userBean.getRights()==1 || userBean.getRights()==2){ %>
<span id="admindiv"><a href="admin/sopmanager.jsp">SOP管理</a> | </span>
<%} %>
<a href="home/userset.jsp">设置</a> | <a href="<%=basePath %>GlobalServlet?mask=logout">登出</a></div>
</div>
<div style=" margin:0 auto; height: 20px; width: 980px;">SOP列表<a href="javascript:;" οnclick="go(curPage);">(刷新)</a>:</div>
<div style=" margin:0 auto; height: 420px; width: 980px; overflow-y: auto;">
<div id="tableBody" style="overflow-y: auto;">

</div>
<div style="clear: both; height: 10px;"></div>
<div id="tableLast" style="float: right; display: none;">
<a href="javascript:;" οnclick="go(1);">首页</a>
<a href="javascript:;" οnclick="go(curPage-1);">上一页</a>
<a href="javascript:;" οnclick="go(curPage+1);">下一页</a>
<a href="javascript:;" οnclick="go(maxPage);">末页</a>
<span id="pagingIndex">
<span><b>0/0</b></span>
</span>
转到 <input name="pagenav" id="pagenav" type="text" size="2" οnkeypress="javaScript:if(event.keyCode==13){go(this.value);}" />
页<a href="javascript:;" οnclick="javascript:go(document.getElementById('pagenav').value);">Go</a>    
</div>
</div>
<div style=" clear: both; height: 50px;"></div>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值