<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@page import="com.contrl.*"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> //导入JSTL
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<%
int PageSize = 3; //设置页面大小
//获得当前页
String tCurrentPage = null;
tCurrentPage = request.getParameter("currentPage");
//设置当前页
int currentPage = 0;
if (tCurrentPage != null) {
currentPage = Integer.parseInt(tCurrentPage.trim());
}
System.out.println("currentPage = " + currentPage + " PageSize = " + PageSize);
//设置起始坐标
int startIndex = currentPage*PageSize;
//放入request
request.setAttribute("currentPage",currentPage); //利用JDBC获得所有用户
List<User> users = new ArrayList<User>(); String driverName = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "1"; Class.forName(driverName);
Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;
conn = DriverManager.getConnection(url, username, password);
//基于MySQL的limit分页显示第一个参数起始位置(从0开始), 第二个参数为页面大小
String sql = "select * from users limit ?,?";
pst = conn.prepareStatement(sql);
pst.setInt(1,startIndex);
pst.setInt(2,PageSize); rs = pst.executeQuery();
User user = null;
while (rs.next()) {
user = new User();
user.setId(rs.getInt("id"));
String tName = rs.getString("name");
//System.out.println("T = " + tName);
String name = new String(tName.getBytes("ISO-8859-1"),"utf-8");
System.out.println("name = " + name);
user.setName(tName);
//System.out.println(user.getId() + " " + user.getName());
users.add(user);
}
//将所有的用户放入request中
request.setAttribute("users", users); //获得总页数
int allPage = 0;
sql = "select count(*) from users";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
if (rs.next()) {
allPage = (Integer.parseInt(rs.getString(1)) + PageSize - 1) / PageSize;
}
System.out.println("allPage = " + allPage);
//设置最大页数
request.setAttribute("allPage", allPage);
%> <body> <table border="1" align="center">
<tr> <th>ID</th> <th>姓名</th> </tr>
<c:forEach items="${users}" var="user">
<tr>
<td> ${user.id} </td>
<td> ${user.name} </td>
</tr>
</c:forEach>
</table> <div align="center">
<a href="?currentPage=0">首页</a>
<c:if test="${currentPage == 0}"> 上一页</c:if>
<c:if test="${ currentPage >= 1}"> <a href="?currentPage=${currentPage - 1 }"> 上一页 </a> </c:if> <c:if test="${currentPage == allPage - 1}"> 下一页</c:if>
<c:if test="${ currentPage < allPage - 1}"> <a href="?currentPage=${ currentPage + 1 }"> 下一页 </a> </c:if> <a href="?currentPage=${ allPage - 1 }">末页</a> <b> ${allPage }</b>
</div> </body>
</html>

  

在这这部分代码时最让我头疼的就是中文乱码问题了。

最后的解决办法是:

① 首先把MySQL的服务停掉 在运行窗口输入:net stop mysql
② 把服务器和客户端的字符集改成自己想用的字符集:GB2312或是utf8等……
具体操作为:打开mysql安装目录下的my.ini;
找到default-character-set,将其改为自己想用的字符集:GB2312或是utf8等……,要注意的是这里有两个default-character-set,用ctrl+f定位在文件最前面输入default就会找到,都要改过来;
③ 重启MySQL服务器,在运行窗口输入:net start mysql
④ 最重要的是一点是,到这里我们已经能够解决乱码问题了,可问题是我们依然还会出现乱码问题,这是因为我们现在的表被创建的时候用的是默认的字符集(latin1),所以这时候我们要把表删除,然后重建就可以了

  

我是在windos下弄得,改成utf-8的话,控制台会出现中文乱码而且不能插入中文,但是Navicat没问题,后来改成GB2312就好了。

核心部分还是MySQL的limit?,?分页, 第一个表示分页的开始坐标, 第二个参数表示页面大小。

基于MySQl的分页显示的更多相关文章

  1. php分页例子实现读取mysql数据分页显示

    以下代码是PHP分页案例,测试通过,主要是PHP+mysql实现分页,代码来处百度空间,有兴趣看的话可以了解一下PHP是如何分页的? <?php $link = mysql_connect(&q ...

  2. jQuery+Ajax+PHP+Mysql实现分页显示数据

    css <style type="text/css"> #loading{ position: absolute; top: 200px; left:400px; } ...

  3. JSP分页显示实例(基于Bootstrap)

    首先介绍一款简单利落的分页显示利器:bootstrap-paginator 效果截图: GitHub官方下载地址:https://github.com/lyonlai/bootstrap-pagina ...

  4. 基于Mysql数据库的SSM分页查询

    前言: Hello,本Y又来了,"分页"在我们使用软件的过程中是一个很常见的场景,比如博客园对于每个博主的博客都进行了分页展示.可以简单清晰的展示数据,防止一下子将过多的数据展现给 ...

  5. PHP+MySQL分页显示示例分析

    Web开发是今后分布式程式开发的主流,通常的web开发都要涉及到与数据库打交道,客户端从服务器端读取通常都是以分页的形式来显示,一页一页的阅读起来既方便又美观.所以说写分页程序是web开发的一个重要组 ...

  6. Java 与 Mysql连接,并分页显示

    这是我第一个上规模的Java项目,我们必须在一周内完成的作业,零基础学习Java,网上收集了很多资料,逐渐对面向对象的思想有所了解,但还是半灌水,后期打算结合项目系统地学习一遍Java.老师布置的任务 ...

  7. 基于Jquery+Ajax+Json实现分页显示

    1.后台action产生json数据. List blackList = blackService.getBlackInfoList(mobileNum, gatewayid, startDate, ...

  8. 基于SpringBoot从零构建博客网站 - 分页显示文章列表功能

    显示文章列表一般都是采用分页显示,比如每页10篇文章显示.这样就不用每次就将所有的文章查询出来,而且当文章数量特别多的时候,如果一次性查询出来很容易出现OOM异常. 后台的分页插件采用的是mybati ...

  9. Statement和PreparedStatement的特点 MySQL数据库分页 存取大对象 批处理 获取数据库主键值

    1 Statement和PreparedStatement的特点   a)对于创建和删除表或数据库,我们可以使用executeUpdate(),该方法返回0,表示未影向表中任何记录   b)对于创建和 ...

随机推荐

  1. [py][mx]django form验证-给db减压

    django form认证-解压db压力 一般系统都需要前后端都验证 前端验证容器逃逸破解,如通过js console口去发 试想如果后端只有db验证,那么前端无论发什么后端都查询一次db,对db压力 ...

  2. python中安装requests后又提示错误

    刚刚我们是安装成功了的,新建一个项目又提示红色的波浪线了,,郁闷了 解决方法:点击pycharm菜单:File-Settings,键入Project Interpreter,我电脑python安装路径 ...

  3. [LeetCode] 230. Kth Smallest Element in a BST_Medium tag: Inorder Traversal

    Given a binary search tree, write a function kthSmallest to find the kth smallest element in it. Not ...

  4. [转]Tesseract-OCR (Tesseract的OCR引擎最先由HP实验室于1985年开始研发)

    光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程.OCR技术非常专业,一般多是印刷.打印行 ...

  5. ts实战项目启动中遇到的问题

    项目链接:https://github.com/Jiasm/typescript-example 储备知识须知: sequelize入门篇 : 依照README执行以下操作: npm i brew s ...

  6. django学习网站

    http://www.ziqiangxuetang.com/django/django-qrcode.html

  7. webp格式

    有时候你右键保存了一张图片,然后好气啊,打不开.这要么是webp格式,要么,,,,要么有问题啊. WebP格式,谷歌大法开发的一种旨在加快图片加载速度的图片格式.图片压缩体积大约只有JPEG的2/3, ...

  8. Lua安装

    部署环境 lua-5.1.1 VM虚拟机redhat6.5-x64:192.168.1.201 Xshell4 安装 步骤一:安装依赖 yum install -y readline yum inst ...

  9. zookeeper 详解

    是 分布式 协调 服务. ZK的工作:注册:所有节点向ZK争抢注册,注册成功会建立一套节点目录树,先注册的节点为Active节点,后注册节点成为standby;监听事件:节点在ZK集群里注册监听动作: ...

  10. NOSQL学习之二:MongoDB

    MongoDB是一个高性能,开源,无模式的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键/值存储方式,是当前NoSQL数据库中比较热门的一种. MongoDB使用C++开发.不支持SQL ...