分页查询

本文介绍了一个基于Java的用户信息分页管理系统的设计与实现过程。该系统通过自定义PageModel类来封装分页数据,并利用UserManager类进行数据库操作,实现了用户列表的分页展示功能。此外,还提供了一系列页面导航功能,如跳转到首页、上一页、下一页和尾页。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.cx.drp.util;

import java.util.List;

/**
 * 封装分页对象PageModel
 * @author CX
 *http://chenxu.wo.blog.163.com/
 */
public class PageModel {

	//分页列表
	private List list;
	
	//总页数
	private int totalRecords;	

	//每页大小
	private int pageSize;
	
	//当前页号
	private int pageNo;
	
	//获取总页数
	public int getTotalPages(){
		return (totalRecords+pageSize-1)/pageSize;
	}
	
	/**
	 * 取得首页
	 * @return
	 */
	public int getTopPageNo(){
		return 1;		
	}
	
	/**
	 * 前一页
	 * @return
	 */
	public int getPreviousPageNo(){
		if(this.pageNo<=1){
			return 1;
		}
		return pageNo-1;
	}
	
	/**
	 * 下一页
	 * @return
	 */
	public int getNextPageNo(){
		if(this.pageNo>=getTotalPages()){
			return getTotalPages();
		}
		return pageNo+1;		
	}
	
	/**
	 * 尾页
	 * @return
	 */
	public int getBottomPageNo(){
		return getTotalPages();					
	}
	

	public int getTotalRecords() {
		return totalRecords;
	}

	public void setTotalRecords(int totalRecords) {
		this.totalRecords = totalRecords;
	}

	public List getList() {
		return list;
	}

	public void setList(List list) {
		this.list = list;
	}	

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getPageNo() {
		return pageNo;
	}

	public void setPageNo(int pageNo) {
		this.pageNo = pageNo;
	}
}

 

package com.cx.drp.sysmgr.manager;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.cx.drp.sysmgr.domain.User;
import com.cx.drp.util.DBUtil;
import com.cx.drp.util.PageModel;

/**
 * 使用单例管理用户
 * 
 * @author CX
 * 
 */
public class UserManager {

	private static UserManager instance = null;

	private UserManager() {
	};

	public static synchronized UserManager createInstance() {
		if (instance == null) {
			instance = new UserManager();
		}
		return instance;
	}
	
	/**
	 * 根据分页查询学生列表
	 * 
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	public PageModel findUserList(int pageNo, int pageSize) {
		StringBuffer sb = new StringBuffer();
		sb
				.append("")
				.append("select * from(")
				.append(
						"select rownum rn,user_id,user_name,password,contact_tel,email,create_date from(")
				.append(
						"select * from t_User where user_id<>'root' order by user_id)")
				.append("where rownum <= ?").append(") where rn>?");
		PreparedStatement pstmt = null;

		ResultSet rs = null;
		Connection conn = null;
		List userList = new ArrayList();
		PageModel pageModel = null;
		try {
			conn = DBUtil.getConnection();
			pstmt = conn.prepareStatement(sb.toString());
			pstmt.setInt(1, pageNo * pageSize);
			pstmt.setInt(2, (pageNo - 1) * pageSize);
			rs = pstmt.executeQuery();
			while (rs.next()) {
				User user = new User();
				user.setUserId(rs.getString("user_id"));
				user.setUserName(rs.getString("user_name"));
				user.setContactTel(rs.getString("contact_tel"));
				user.setEmail(rs.getString("email"));
				user.setPassword(rs.getString("password"));
				user.setCreateDate(rs.getTimestamp("create_date"));

				userList.add(user);
			}

			pageModel = new PageModel();
			pageModel.setList(userList);
			pageModel.setPageNo(pageNo);
			pageModel.setTotalRecords(getTotalSize(conn));
			pageModel.setPageSize(pageSize);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DBUtil.close(rs);
			DBUtil.close(pstmt);
			DBUtil.close(conn);
		}
		return pageModel;
	}

	/**
	 * 获取总记录数
	 * @param conn
	 * @return
	 */
	public int getTotalSize(Connection conn) {
		String sql = "select count(*) from t_user where user_id<>'root'";
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		int recordCount = 0;
		try {
			conn = DBUtil.getConnection();
			pstmt = conn.prepareStatement(sql);
			rs = pstmt.executeQuery();
			rs.next();
			recordCount = rs.getInt(1);
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		return recordCount;
	}
	

 

<%@ page language="java" contentType="text/html; charset=GB18030"
	pageEncoding="GB18030"%>

<%@ page import="com.cx.drp.sysmgr.domain.*"%>
<%@ page import="com.cx.drp.sysmgr.manager.*"%>
<%@ page import="com.cx.drp.util.*"%>
<%@ page import="java.text.*"%>
<%@ page import="java.util.*"%>


<%
	int pageNo = 1;
	int pageSize = 1;
	String pageNoString = request.getParameter("pageNo");
	if(pageNoString!=null && !"".equals(pageNoString)){
		pageNo = Integer.parseInt(pageNoString);
	}
		
	PageModel pageModel = new PageModel();
	pageModel = UserManager.createInstance().findUserList(pageNo,pageSize);
%>

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
		<title>用户维护</title>
		<link rel="stylesheet" href="../style/drp.css">
		<script type="text/javascript">

function addUser() {
	window.self.location = "user_add.jsp";
}

function modifyUser() {
	window.self.location = "user_modify.html";
}

function deleteUser() {

}

//CheckBox全选	
function checkAll(field) {
	var selectFlags = document.getElementsByName("selectFlag");
	for ( var i = 0; i < selectFlags.length; i++) {
		selectFlags[i].checked = field.checked;
	}
}

function topPage() {
	window.self.location="user_maint.jsp?pageNo=<%=pageModel.getTopPageNo()%>";
}

function previousPage() {
	window.self.location="user_maint.jsp?pageNo=<%=pageModel.getPreviousPageNo()%>";
}

function nextPage() {
	window.self.location="user_maint.jsp?pageNo=<%=pageModel.getNextPageNo()%>";
}

function bottomPage() {
	window.self.location="user_maint.jsp?pageNo=<%=pageModel.getBottomPageNo()%>";
}
</script>
	</head>

	<body class="body1">
		<form name="userform" id="userform">
			<div align="center">
				<table width="95%" border="0" cellspacing="0" cellpadding="0"
					height="35">
					<tr>
						<td class="p1" height="18" nowrap>
							&nbsp;

						</td>
					</tr>
					<tr>
						<td width="522" class="p1" height="17" nowrap>
							<img src="../images/mark_arrow_02.gif" width="14" height="14">
							&nbsp;
							<b>系统管理&gt;&gt;用户维护</b>
						</td>
					</tr>
				</table>
				<hr width="100%" align="center" size=0>
			</div>
			<table width="95%" height="20" border="0" align="center"
				cellspacing="0" class="rd1" id="toolbar">
				<tr>
					<td width="49%" class="rd19">
						<font color="#FFFFFF">查询列表</font>
					</td>
					<td width="27%" nowrap class="rd16">
						&nbsp;
						<div align="right"></div>
					</td>
				</tr>
			</table>
			<table width="95%" border="1" cellspacing="0" cellpadding="0"
				align="center" class="table1">
				<tr>
					<td width="55" class="rd6">
						<input type="checkbox" name="ifAll" onClick="checkAll(this)">
					</td>
					<td width="119" class="rd6">
						用户代码
					</td>
					<td width="152" class="rd6">
						用户名称
					</td>
					<td width="166" class="rd6">
						联系电话
					</td>
					<td width="150" class="rd6">
						email
					</td>
					<td width="153" class="rd6">
						创建日期
					</td>
				</tr>

				<%
					List userList = pageModel.getList();
					for (Iterator iter = userList.iterator(); iter.hasNext();) {
						User user = (User) iter.next();
				%>

				<tr>
					<td class="rd8">
						<input type="checkbox" name="selectFlag" class="checkbox1"
							value="<%=user.getUserId()%>">
					</td>
					<td class="rd8">
						<%=user.getUserId()%>
					</td>
					<td class="rd8">
						<%=user.getUserName()%>
					</td>
					<td class="rd8">
						<%=user.getPassword()%>
					</td>
					<td class="rd8">
						<%=user.getEmail()%>
					</td>
					<td class="rd8">
						<%=user.getCreateDate()%>
					</td>
				</tr>

				<%
					}
				%>

			</table>
			<table width="95%" height="30" border="0" align="center"
				cellpadding="0" cellspacing="0" class="rd1">
				<tr>
					<td nowrap class="rd19" height="2">
						<div align="left">
							<font color="#FFFFFF">&nbsp;共&nbsp; <%=pageModel.getTotalPages()%>
								&nbsp;页</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
							<font color="#FFFFFF">当前第</font>&nbsp;
							<font color="#FF0000"><%=pageNo%></font>&nbsp;
							<font color="#FFFFFF">页</font>;
						</div>
					</td>
					<td nowrap class="rd19">
						<div align="right">
							<input name="btnTopPage" class="button1" type="button"
								id="btnTopPage" value="|&lt;&lt; " title="首页"
								onClick="topPage()">
							<input name="btnPreviousPage" class="button1" type="button"
								id="btnPreviousPage" value=" &lt;  " title="上页"
								onClick="previousPage()">
							<input name="btnNextPage" class="button1" type="button"
								id="btnNextPage" value="  &gt; " title="下页" onClick="nextPage()">
							<input name="btnBottomPage" class="button1" type="button"
								id="btnBottomPage" value=" &gt;&gt;|" title="尾页"
								onClick="bottomPage()">
							<input name="btnAdd" type="button" class="button1" id="btnAdd"
								value="添加" onClick="addUser()">
							<input name="btnDelete" class="button1" type="button"
								id="btnDelete" value="删除" onClick="deleteUser()">
							<input name="btnModify" class="button1" type="button"
								id="btnModify" value="修改" onClick="modifyUser()">
						</div>
					</td>
				</tr>
			</table>
			<p>
				&nbsp;

			</p>
		</form>
	</body>
</html>

 

内容概要:本文详细探讨了基于MATLAB/SIMULINK的多载波无线通信系统仿真及性能分析,重点研究了以OFDM为代表的多载波技术。文章首先介绍了OFDM的基本原理和系统组成,随后通过仿真平台分析了不同调制方式的抗干扰性能、信道估计算法对系统性能的影响以及同步技术的实现与分析。文中提供了详细的MATLAB代码实现,涵盖OFDM系统的基本仿真、信道估计算法比较、同步算法实现和不同调制方式的性能比较。此外,还讨论了信道特征、OFDM关键技术、信道估计、同步技术和系统级仿真架构,并提出了未来的改进方向,如深度学习增强、混合波形设计和硬件加速方案。; 适合人群:具备无线通信基础知识,尤其是对OFDM技术有一定了解的研究人员和技术人员;从事无线通信系统设计与开发的工程师;高校通信工程专业的高年级本科生和研究生。; 使用场景及目标:①理解OFDM系统的工作原理及其在多径信道环境下的性能表现;②掌握MATLAB/SIMULINK在无线通信系统仿真中的应用;③评估不同调制方式、信道估计算法和同步算法的优劣;④为实际OFDM系统的设计和优化提供理论依据和技术支持。; 其他说明:本文不仅提供了详细的理论分析,还附带了大量的MATLAB代码示例,便于读者动手实践。建议读者在学习过程中结合代码进行调试和实验,以加深对OFDM技术的理解。此外,文中还涉及了一些最新的研究方向和技术趋势,如AI增强和毫米波通信,为读者提供了更广阔的视野。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值