通过用MVC+三层架构实现简单的分页查询,来理解面向对象的思想

本文通过一个简单的分页查询案例,深入探讨面向对象思想在JAVA开发中的应用。首先设计JavaBean,接着阐述Controller、Service和Dao层的逻辑处理,强调对象在不同层之间传递的重要性,以此来理解面向对象编程。
摘要由CSDN通过智能技术生成

本文使用的是比较原始的方法实现分页查询,不涉及框架。

本文主要讨论的是面向对象的思想,部分过程(比如JSP的详细内容)不做讨论。


设计JavaBean

首先,我们想象一个具有基本功能的分页查询,它应该有哪些元素?

  • 页面结构,包括页码、页数、数据总条数以及每页显示多少条数据。
  • 要查询的数据信息,一般每页不止一条数据,所以这个数据是一个集合。

那么我们就可以把一个页面当成一个JavaBean对象,这个对象包含的属性有页面当前页码、总页数、数据总条数、每页显示的数据条数以及每页的数据集合。

当用户想要查询某一页的信息时,通过jsp页面向服务器发送请求,则请求中必定包含要查询的页码。也可以包含其他属性,比如每页显示多少条数据。我这里就发送了两个属性:页码和每页显示数据的条数。

public class PagingQuery<T> {

//	当前页码:显示或者想要显示的页码
//	页码要做整数比较,不能为空,不能为Integer
	private int currentPageNumber;
//	总页数:查询到的结果,按需能分成多少页
	private Integer totalPages;
//	每页条数:每页显示多少条结果
	private Integer piecesPerPage;
//	总条数:总共查询到多少条结果
	private Integer totalPieces;
//	每页存放的结果信息集合
	private List<T> listOfInfoPerPage;
	/**
	 * @return 获取页码数
	 */
	public int getCurrentPageNumber() {
		return currentPageNumber;
	}
	/**
	 * @param currentPageNumber 设置需要设定的当前页码,值由页面指定,需要外部验证
	 */
	public void setCurrentPageNumber(int currentPageNumber) {
		this.currentPageNumber = currentPageNumber;
	}
	/**
	 * @return 获取总页数
	 */
	public Integer getTotalPages() {
		return totalPages;
	}
	/**
	 * @param totalPages 设置总页数:根据总条数和每页条数,设定总页数,需要外部验证
	 */
	public void setTotalPages(Integer totalPages) {
		this.totalPages = totalPages;
	}
	/**
	 * @return 获取每页条数
	 */
	public Integer getPiecesPerPage() {
		return piecesPerPage;
	}
	/**
	 * @param piecesPerPage 设置每页条数,值由页面指定
	 */
	public void setPiecesPerPage(Integer piecesPerPage) {
		this.piecesPerPage = piecesPerPage;
	}
	/**
	 * @return 获取总条数
	 */
	public Integer getTotalPieces() {
		return totalPieces;
	}
	/**
	 * @param totalPieces 设定总条数,值由数据库指定
	 */
	public void setTotalPieces(Integer totalPieces) {
		this.totalPieces = totalPieces;
	}
	/**
	 * @return 获取每页结果信息集合
	 */
	public List<T> getListOfInfoPerPage() {
		return listOfInfoPerPage;
	}
	/**
	 * @param listOfInfoPerPage 设定每页结果信息集合,值由数据库指定
	 */
	public void setListOfInfoPerPage(List<T> listOfInfoPerPage) {
		this.listOfInfoPerPage = listOfInfoPerPage;
	}
	@Override
	public String toString() {
		return "PagingQuery [currentPageNumber=" + currentPageNumber + ", totalPages=" + totalPages + ", piecesPerPage="
				+ piecesPerPage + ", totalPieces=" + totalPieces + "]";
	}
}

除了页面对象,我们还需要一个JavaBean对象,就是数据信息对象,也就是页面对象的里的信息集合的元素,每个对象(也就是每条数据)对应数据库的一条记录。

以学生信息为例,根据数据库表结构创建学生对象。

public class StudentInfo {

//	学号
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值