Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >分页-准备工作

分页-准备工作

作者头像
星哥玩云
发布于 2022-09-14 13:13:39
发布于 2022-09-14 13:13:39
22700
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行

1、准备工作

1.1、sql语句

建库,键表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
drop database customers;
CREATE DATABASE IF NOT EXISTS customers;
USE customers;
CREATE TABLE t_customer(
	cid CHAR(32) PRIMARY KEY,
	cname VARCHAR(40) NOT NULL,
	gender VARCHAR(6) NOT NULL, 
	birthday CHAR(10),
	cellphone VARCHAR(15) NOT NULL,
	email VARCHAR(40),
	description VARCHAR(500)
);

1.2、导包

1.3、配置文件

c3p0-config.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
	<!-- 这是默认配置信息 -->
	<default-config> 
		<!-- 连接四大参数配置 -->
		<property name="jdbcUrl">jdbc:mysql://localhost:3306/customers</property>
		<property name="driverClass">com.mysql.jdbc.Driver</property>
		<property name="user">root</property>
		<property name="password">poi</property>
		<!-- 池参数配置 -->
		<property name="acquireIncrement">3</property>
		<property name="initialPoolSize">10</property>
		<property name="minPoolSize">2</property>
		<property name="maxPoolSize">10</property>
	</default-config>
	
	<!-- 专门为oracle提供的配置信息 -->
	<named-config name="oracle-config"> 
		<property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb1</property>
		<property name="driverClass">com.mysql.jdbc.Driver</property>
		<property name="user">root</property>
		<property name="password">poi</property>
		<property name="acquireIncrement">3</property>
		<property name="initialPoolSize">10</property>
		<property name="minPoolSize">2</property>
		<property name="maxPoolSize">10</property>
	</named-config>

</c3p0-config>

1.4、domain对象

Customer.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Customer {
	/*
	 * 对应数据库表
	 */
	private String cid;// 主键
	private String cname;// 客户名称
	private String gender;// 客户性别
	private String birthday;// 客户生日
	private String cellphone;// 客户手机
	private String email;// 客户邮箱
	private String description;// 客户的描述

	public String getCid() {
		return cid;
	}

	public void setCid(String cid) {
		this.cid = cid;
	}

	public String getCname() {
		return cname;
	}

	public void setCname(String cname) {
		this.cname = cname;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public String getBirthday() {
		return birthday;
	}

	public void setBirthday(String birthday) {
		this.birthday = birthday;
	}

	public String getCellphone() {
		return cellphone;
	}

	public void setCellphone(String cellphone) {
		this.cellphone = cellphone;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	@Override
	public String toString() {
		return "Customer [cid=" + cid + ", cname=" + cname + ", gender="
				+ gender + ", birthday=" + birthday + ", cellphone="
				+ cellphone + ", email=" + email + ", description="
				+ description + "]";
	}
}

1.5、往表中插入批量数据

CustomerTest.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class CustomerTest {
	@Test
	public void fun1() {
		CustomerDao dao = new CustomerDao();
		for(int i = 1; i <= 300; i++) {
			Customer c = new Customer();
			
			c.setCid(CommonUtils.uuid());
			c.setCname("cstm_" + i);
			c.setBirthday("2014-07-13");
			c.setGender(i%2==0?"男":"女");
			c.setCellphone("139" + i);
			c.setEmail("cstm_" + i + "@163.com");
			c.setDescription("我是客户");
			
			dao.add(c);
		}
	}
}

CustomerDao.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class CustomerDao {
	private QueryRunner qr = new QueryRunner(new ComboPooledDataSource());

	/**
	 * 添加客户
	 * 
	 * @param c
	 */
	public void add(Customer c) {
		try {
			String sql = "insert into t_customer values(?,?,?,?,?,?,?)";
			Object[] params = { c.getCid(), c.getCname(), c.getGender(),
					c.getBirthday(), c.getCellphone(), c.getEmail(),
					c.getDescription()};
			qr.update(sql, params);
		} catch(SQLException e) {
			throw new RuntimeException(e);
		}
	}
}

CommonUtils.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class CommonUtils {
	/**
	 * 返回一个不重复的字符串
	 * @return
	 */
	public static String uuid() {
		return UUID.randomUUID().toString().replace("-", "").toUpperCase();
	}
}

2、什么是分页

第N页/共M页 首页 上一页 1 2 3 4 5 6 7 8 9 10下一页 尾页

分页的优点:只查询一页,不用查询所有页!

3、分页数据分析

页面的数据都是由Servlet传递过来的

那么Servlet需要提供给当前页面的数据有哪些呢?

  • 当前页页码(pageCode,pc):Servlet提供; pc:如果页面没有传递当前页码,那么Servlet默认是第一页,或者按页面传递的来准!
  • 共几页(totalPage,tp):Servlet提供; tp=总记录数/每页记录数 select count(*) from t_customer;
  • 总记录数:totalpages,tp
  • 每页记录数:业务记录数或叫系统数据!10行!
  • 当前页数据(beanList):Servlet提供;

4、数据的传递:PageBean(把分布数据封装成PageBean类对象)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class PageBean<T> {
	private List<T> beanList;// 当前页记录数, 需要传递
	private int tr;// 总记录数, 需要传递
	private int pc;// 当前页码, 需要传递
	private int ps;// 每页记录数, 需要传递
	private int tp;// 总页数, 计算
    //其他的提供get/set方法
    //但tp只提供get方法
    public int getTp(){
        tp=tr/ps;
        return tr%ps==0?tp:tp+1;
    }
}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
分页-代码实现
1、分页数据流转流程图 PageBean.java import java.util.List; public class PageBean<T> { private List<T> beanList;// 当前页记录数, 需要传递 private int tr;// 总记录数, 需要传递 private int pc;// 当前页码, 需要传递 private int ps;// 每页记录数, 需要传递 private int tp;// 总页数, 计算 //其他的提供get/se
星哥玩云
2022/09/14
1.5K0
分页-代码实现
客户关系管理系统
前言 为了巩固开发的流程,我们再拿一个客户关系管理系统来练手...! 成果图 我们完成的就是下面的项目! 搭建配置环境 配置Tomcat 导入开发包 建立开发用到的程序包 在数据库创建相对应的表
Java3y
2018/03/15
4.7K0
客户关系管理系统
【JavaWeb基础】客户关系管理系统(修订版)
要想在下拉框中可以选择很多的数据,那么value的值就不能单单只有一个。当然了,也不可能在JSP页面中写下面的代码
Java3y
2019/05/13
3.2K0
【JavaWeb基础】客户关系管理系统(修订版)
[Spring框架]Spring JDBCTmplate基础入门总结.
前言: 前面有讲过 Spring IOC以及AOP的基本使用方法, 这里就再来讲下Spring JDBCTemplate的使用方法. 一, 概述 这里先说一下Spring 整合的一些模板: 从上图中
一枝花算不算浪漫
2018/05/18
6610
PreparedStatement类详解以及案例
(1) 注册驱动 (2)获得链接: (3)获得sql 容器: Statement : (4)执行sql 语句: (5)查询操作, 需要遍历结果集: (6)关闭资源:
全栈程序员站长
2022/08/14
5530
PreparedStatement类详解以及案例
第83节:Java中的学生管理系统分页功能
分页功能一般可以做成两种,一种是物理分页,另一种是逻辑分页。这两种功能是有各自的特点的,物理分页是查询的时候,对数据库进行访问,只是查一页数据就进行返回,其特点是对内存中数据量存储不大,只是缺点就是要对数据库不断的进行访问;而对逻辑分页来说,就有所不同,它是一下子就把所有的数据全部查询出来,然后放入到内存中,访问速度快,缺点就是对内存空间不足,数据量过大。
达达前端
2019/07/03
1K0
第83节:Java中的学生管理系统分页功能
javaWeb核心技术第十二篇之分页和条件
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
海仔
2019/09/18
9260
Web-第十四天 基础加强-JDBC案例【悟空教程】
`pname` varchar(50) DEFAULT NULL, #商品名称
Java帮帮
2018/07/27
7940
Web-第十四天 基础加强-JDBC案例【悟空教程】
JavaWeb之简单分页查询分析及代码
首先祝大家新年快乐,同样希望大家都可以健健康康的度过这次疫情,然后我想解释一下为什么停更长达一两个月,去年总是可能是熬夜生活作息不太规律,总是偏头痛,程度还挺重,已经影响自己的正常工作和学习,后来配合休息和药,才基本恢复了,上个学期末学校的事也是多了一些,很多时间都用在了课业或者看一些技术书上,所以停更了算挺久,非常抱歉,很感谢即使停更,大家也没有离我而去,从今天起,我接着开始更新一些文章,希望我粗浅的技术能给大家一些切实的帮助,非常欢迎大家用公众号后台,微信或者邮件的方式(文末有联系方式)与我交流,再次感谢大家!
BWH_Steven
2020/02/20
2.8K0
友佳书屋实训项目(三)
CustomerServiceImpl实现类具体操作与上篇雷同,不再截图展示具体过程。
杨校
2021/10/19
4130
撒花 | SSM 完结
同样,整合之后,如果我们可以通过前台页面来执行查询方法,并且查询出的数据能够在页面中正确显示,那么我们也可以认为三大框架整合成功。
千羽
2021/12/29
2320
撒花 | SSM 完结
Hibernate初级入门
private String userName;<—————>t_userName(这个我们要通过映射文件来创建)
全栈程序员站长
2022/06/30
4620
【腾讯云Cloud Studio实战训练营】如何轻松实现一个Springboot+Vue学生管理系统及我的使用感受
在这个博客中,我将介绍如何使用Cloud Studio打造一个基于Spring Boot和Vue的学生管理系统。该系统旨在提供一个简单而功能丰富的平台,用于管理学生的信息和课程,并提供一系列功能来增强教育管理的效率和便捷性。
Maynor
2023/07/24
7230
【腾讯云Cloud Studio实战训练营】如何轻松实现一个Springboot+Vue学生管理系统及我的使用感受
MyBatis Plus 入门
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
Maynor
2021/12/21
4940
MyBatis Plus 入门
图书系统优化分页与搜索跳转
在servlet中获取jsp中输入的条件(书名称,作者),并且将它们放入request域中(servlet跳转至booklist时,在booklist中获取request域中的数据来拼接到a标签后面进行查询满足条件的书籍数据) //获取页码和页大小
2020/10/23
6840
图书系统优化分页与搜索跳转
开发常用MyBatis的核心配置,你能看懂几个?
注意:这些子元素必须按照由上到下的顺序进行配置,否则MyBatis在解析XML配置文件的时候会报错。
千羽
2021/12/29
6440
开发常用MyBatis的核心配置,你能看懂几个?
JavaWeb后端入门12—分页
用户6948990
2025/04/03
800
学习了MyBatis-Plus你还会用MyBatis嘛
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
陶然同学
2023/02/27
5600
学习了MyBatis-Plus你还会用MyBatis嘛
Vue入门项目:学生管理系统之班级管理 【含源码】
目录 1.概述 2.表结构 3.搭建环境         3.1后端环境                 3.1.1项目名:student                 3.1.2坐标                 3.1.3核心配置文件                 3.1.4启动类                 3.1.5封装类                 3.1.6配置类(可选)         3.2前端环境                 3.2.1拷贝静态资源            
陶然同学
2023/02/27
1.6K0
Vue入门项目:学生管理系统之班级管理 【含源码】
Web-第二十二天 Web商城实战二【悟空教程】
`cname` varchar(20) DEFAULT NULL, #分类名称
Java帮帮
2018/07/27
1.2K0
Web-第二十二天 Web商城实战二【悟空教程】
相关推荐
分页-代码实现
更多 >
LV.5
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验