前往小程序,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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL 中间件Mycat部署
为什么使用MyCat 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB。对数据的各种 操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现 暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上 的提升。但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安 全指标的。这个时候NoSQL肯定是无法满足的,所以还是需要使用关系性数据库。如何使用关系型数据库解决 海量存储的问题呢?此时就需要做数据库集群,为了提高查询性能将一个数据库的数据分散到不同的数据库中 存储,为应对此问题就出现了——MyCat
小手冰凉
2020/06/22
7440
快速学习-Mycat快速入门
MyCAT 是使用 JAVA 语言进行编写开发,使用前需要先安装 JAVA 运行环境(JRE),由于 MyCAT 中使用了JDK7 中的一些特性,所以要求必须在 JDK7 以上的版本上运行。
cwl_java
2021/08/30
8020
快速学习-Mycat快速入门
Mycat web 基础2
安装 下载zk后,确保有java环境的情况下解压就可以使用了 [root@h102 src]# tar -zxvf zookeeper-3.4.8.tar.gz zookeeper-3.4.8/ zookeeper-3.4.8/zookeeper-3.4.8.jar.md5 zookeeper-3.4.8/zookeeper-3.4.8.jar.asc zookeeper-3.4.8/zookeeper-3.4.8.jar zookeeper-3.4.8/contrib/ ... ... zookeepe
franket
2021/12/02
2360
Mycat分库分表全解析 Part 3 Mycat的安装
http://www.mycat.io/document/mycat-definitive-guide.pdf
bsbforever
2020/08/18
3220
Mycat分库分表全解析 Part 3 Mycat的安装
[991]linux下安装java
进入页面后下载64位的包,jdk-8u181-linux-x64.tar.gz与jdk-8u181-linux-x64.rpm都可以,下面会分别介绍两种包的安装方法,选择其中一种进行安装即可。
周小董
2021/05/27
6450
Tomcat安装(含JDK教程)
由于Tomcat依赖于JRE环境,所以在安装Tomcat前,需要部署java基础环境。
zero000
2018/09/17
2.8K0
Tomcat安装(含JDK教程)
Mycat(入门篇)
Mycat是一款基于阿里开源产品Cobar而研发的开源数据库分库分表中间件(基于Java语言开发)。官网所言:Mycat国内最活跃的、性能最好的开源数据库中间件!
happyJared
2018/09/20
3.3K0
Mysql+Mycat实现数据库主从同步与读写分离
官网: http://mycat.io/ 电子书: http://mycat.io/document/Mycat_V1.6.0.pdf 书: http://blog.csdn.net/wind520/article/details/53213691
民工哥
2020/09/16
8060
Mysql+Mycat实现数据库主从同步与读写分离
Mycat -- linux安装与配置笔记
Mycat介绍,请戳官网:http://www.mycat.io/ 官网地址:http://dl.mycat.io/1.6.5/ 以oracle物理库为例。 1、解压安装包 tar -zxvf Myc
斯武丶风晴
2018/03/01
1K0
Mycat -- linux安装与配置笔记
MyCat 读写分离
MyCat是一个彻底开源的,面向企业应用开发的大数据库集群,支持事务、ACID、可以替代MySQL的加强版数据库,其功能有可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群.融合了内存缓存技术、NoSQL技术、HDFS大数据的新型SQLServer,结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品.
王 瑞
2022/12/28
1.3K0
CentOS6环境下JDK、MySQL、Tomcat安装
          vi /etc/sysconfig/network-scripts/ifcfg-eth0
挽风
2021/04/13
5440
CentOS6环境下JDK、MySQL、Tomcat安装
mycat oracle读写分离_mycat读写分离原理
每个方法都有优缺点,我们选择对程序代码改动最小(只改数据源)的方法三,讲解mycat的配置和使用。
全栈程序员站长
2022/11/04
1K0
mycat oracle读写分离_mycat读写分离原理
Linux各种常用开发软件安装教程(JDK、Tomcat、MySQL、Nginx、Redis)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 你要开放的端口 -j ACCEPT
青山师
2023/05/05
5370
MyCat读写分离
通过mycat来实现读写分离:使用mycat提供的读写分离功能,mycat连接多个数据库,数据源只需要连接mycat,对于开发人员而言他还是连接了一个数据库(实际是mysql的mycat中间件),而且也不需要根据不同 业务来选择不同的库,这样就不会有多余的代码产生
全栈程序员站长
2022/06/30
6660
MyCat读写分离
MyCat04——Mycat安装及管理命令
进入官网 http://www.mycat.org.cn/ 可以看到当前最新版本为 Mycat2,企业中一般不会选择最新版本,一是不够稳定,二是如果出现问题,解决方案不是太容易找到。
用户8100582
2023/11/19
8300
MySQL读写分离之MyCAT
读写分离:读写操作,分发不同的服务器,读分发到对应的服务器 (slave),写分发到对应的服务器(master)
刘銮奕
2020/04/27
1.9K0
MySQL读写分离之MyCAT
CentOS 6.5 安装配置 Tomcat
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
星哥玩云
2022/07/27
5770
CentOS 6.5 安装配置 Tomcat
04 . Mysql主从复制和Mycat读写分离
从库生成两个线程,一个I/O,一个SQL线程,I/O线程去请求主库的binlog,并将得到的binlog日志写到relay log(中继日志)文件中;
iginkgo18
2020/09/27
1K0
04 . Mysql主从复制和Mycat读写分离
Linux安装JDK+Tomcat+MySQL及发布项目教程
jdk-8u161-linux-x64.tar.gz 博主安装的时候,jdk最新版是8u161,大家可根据自己需要进行下载。
德顺
2019/11/13
2.4K0
Tomcat在RedHat Linux上的安装与配置
以下使用的Linux版本为: RedHat Enterprise Linux 7.0 x86_64,Tomcat版本为tomcat-7.0.54.
星哥玩云
2022/07/03
2.2K0
相关推荐
MySQL 中间件Mycat部署
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验