Pagehelper分页插件的使用

Pagehelper分页插件的使用

之前都是用的前端分页插件,今天尝试着用用后台的插件,首先想到的就是pagehelper分页插件。当我开始使用的时候就踩坑了。发现这个插件诸多bug啊。不知道是我使用错了还是怎样,接下来就是我pagehelper插件结合前端知识改良版。
下边开始我的表演吧。本项目采用的是ssm框框架。先上项目结构图吧:

  1. 项目结构图
    本项目也是严格遵守mvc三层架构的,哈哈

在这里插入图片描述

  1. 准备工作(老规矩先导入pom文件)
里面包含了ssm的基本jar包和pagehelper的分页插件。
版本看自己仓库的版本稍作修改。
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.cnct</groupId>
  <artifactId>phelper</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>phelper Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>
      <!-- 连接池 阿里巴巴数据源 全世界最牛逼的data source 没有之一 -->
      <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>druid</artifactId>
          <version>1.0.20</version>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
          <groupId>com.github.pagehelper</groupId>
          <artifactId>pagehelper</artifactId>
          <version>4.1.6</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>4.3.10.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
        <version>4.3.10.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>4.3.10.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>4.3.10.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>4.3.10.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>4.3.10.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.3.10.RELEASE</version>
      </dependency>

      <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.2.8</version>
      </dependency>
      <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>1.3.0</version>
      </dependency>

      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.38</version>
      </dependency>
      <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
      </dependency>

      <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.4</version>
      </dependency>
      <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2</version>
      </dependency>
      <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.6.9</version>
      </dependency>
      <dependency>
        <groupId>aopalliance</groupId>
        <artifactId>aopalliance</artifactId>
        <version>1.0</version>
      </dependency>
  </dependencies>

  <build>
    <finalName>phelper</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.7.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.20.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>
  1. SSM框架的三个配置文件和数据库的配置信息该配置吧。
    3.1.这个啥的配置文件 (applicationContext-dao.xml)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:context="http://www.springframework.org/schema/context"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd">

	<!-- 数据库连接池 -->
	<!-- 加载配置文件 -->
	<!-- 
		由db.properties改为*.properties, 这样也会加载其他的属性文件 可以使用 @Value
		由于父子容器关系,service层(父)的属性文件在springmvc层(子)是读取不到的,子只能读取对象,属性是读取不到的
	 -->
	<context:property-placeholder location="classpath:resource/*.properties" />
	<!-- 数据库连接池 -->
	<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
		destroy-method="close">
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
		<property name="driverClassName" value="${jdbc.driver}" />
		<!-- 最大并发连接数 -->
		<property name="maxActive" value="30" />
		<!-- 最小空闲连接数 -->
		<property name="minIdle" value="5" />
		<!-- 用于显示数据源监控中的sql语句监控 -->
		<property name="filters" value="stat" />
	</bean>
	
	<!-- 配置sqlsessionFactory -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"></property>
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<!-- 配置扫描包,加载mapper代理对象 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.cnct.pagehelper.mapper"></property>
	</bean>
</beans>
  1. 这个啥的配置文件(applicationContext-service.xml)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:context="http://www.springframework.org/schema/context"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd">
	<!-- 扫描包加载Service实现类 -->
	<context:component-scan base-package="com.cnct.pagehelper.service,com.cnct.pagehelper.service.impl"></context:component-scan>
</beans>
  1. SpringMVC配置文件(springmvc.xml)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">

    <context:component-scan base-package="com.cnct.pagehelper.controller"/>
    <!-- 自动创建代理 对@AspectJ注解的支持 -->
    <!-- 通知spring使用cglib而不是jdk的来生成代理方法 AOP可以拦截到Controller -->
    <aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy>
    <mvc:annotation-driven/>
    <!-- 开启aop,对类代理 -->
    <aop:config proxy-target-class="true"></aop:config>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>
  1. 数据库配置文件(db.properties)
db.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/web?characterEncoding=utf-8&serverTimezone=GMT&useSSL=false
jdbc.username=root
jdbc.password=root
 
  1. 分页插件的配置信息以及别名包 (SqlMapConfig.xml)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
    <typeAliases>
        <package name="com.cnct.pagehelper.model"/>
    </typeAliases>
    <!-- 配置分页插件 PageHelper -->
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->
            <property name="helperDialect" value="mysql"/>
        </plugin>
    </plugins>

</configuration>
  1. 别忘记 (web.xml)
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         id="taotao" version="2.5">

  <display-name>maven-ssm</display-name>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <!-- 加载spring容器 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/applicationContext-*.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <!-- 解决post乱码 -->
  <filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>utf-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <!-- springmvc的前端控制器 -->
  <servlet>
    <servlet-name>maven-ssm</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- contextConfigLocation不是必须的, 如果不配置contextConfigLocation, springmvc的配置文件默认在:WEB-INF/servlet的name+"-servlet.xml" -->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring/springmvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <!-- 会拦截所有请求包括静态资源。需要在springmvc.xml中添加静态资源的映射 -->
  <servlet-mapping>
    <servlet-name>maven-ssm</servlet-name>
    <url-pattern>*.action</url-pattern>
  </servlet-mapping>
</web-app>
  1. 日志配置文件看根据自己需求来吧(log4j.properties)
log4j.rootLogger=INFO,console,dailyFile
# TODO \u53d1\u5e03\u5230\u963f\u91cc\u4e91\u8bb0\u5f97\u6dfb\u52a0\uff0c\u53e6\u5916\u63a7\u5236\u53f0\u4e0d\u8f93\u51fa(\u53ea\u8f93\u51fawarn\u6216\u8005error\u4fe1\u606f)
#INFO,console,dailyFile
# log4j.logger.org.mybatis = INFO
log4j.logger.com.sihai.mapper=INFO
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.encoding=UTF-8
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%l] - [%p] %m%n
# \u5b9a\u671f\u6eda\u52a8\u65e5\u5fd7\u6587\u4ef6\uff0c\u6bcf\u5929\u90fd\u4f1a\u751f\u6210\u65e5\u5fd7
log4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyFile.encoding=UTF-8
log4j.appender.dailyFile.Threshold=INFO
# TODO \u672c\u5730\u65e5\u5fd7\u5730\u5740\uff0c\u6b63\u5f0f\u73af\u5883\u8bf7\u52a1\u5fc5\u5207\u6362\u4e3a\u963f\u91cc\u4e91\u5730\u5740
log4j.appender.dailyFile.File=C:/logs/maven-ssm-alipay/log.log4j
log4j.appender.dailyFile.DatePattern='.'yyyy-MM-dd
log4j.appender.dailyFile.layout=org.apache.log4j.PatternLayout
log4j.appender.dailyFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%l] - [%p] %m%n
  • ----------------------------------开始写代码了 ----------------------------------开始写代码了-------------------------------
  1. controller
package com.cnct.pagehelper.controller;

import com.cnct.pagehelper.model.User;
import com.cnct.pagehelper.service.UserService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

@Controller
public class UserController {

    @Autowired
    UserService userService;

    @RequestMapping("/userList.action")
    public String toIndex(@RequestParam(required = true, defaultValue = "1") Integer page, Model model) {
		//开启分页
        PageHelper.startPage(page, 3);
        //查询所有记录
        List<User> userList = userService.findAll();
        PageInfo<User> p = new PageInfo<>(userList);
        model.addAttribute("page", p);
        model.addAttribute("userList", userList);
        return "index";
    }
}
  1. service这一层就一个接口
package com.cnct.pagehelper.service;

import com.cnct.pagehelper.model.User;

import java.util.List;

public interface UserService {
    List<User> findAll();
}
  1. serviceImpl这就是service的实现类
package com.cnct.pagehelper.service.impl;

import com.cnct.pagehelper.mapper.UserMapper;
import com.cnct.pagehelper.model.User;
import com.cnct.pagehelper.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    UserMapper userMapper;
    @Override
    public List<User> findAll() {
        return userMapper.findAll();
    }
}
  1. mapper文件
package com.cnct.pagehelper.mapper;

import com.cnct.pagehelper.model.User;

import java.util.List;
public interface UserMapper {
    List<User> findAll();
}
  1. 别忘了很重要的实体类User
package com.cnct.pagehelper.model;

public class User {
    private Integer id;

    private String username;

    private String password;

    public User(Integer id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    public User() {
        super();
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username == null ? null : username.trim();
    }

    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password == null ? null : password.trim();
    }
}
  1. 对应的UserMapper.xml是不是该写呢?
这里用的mybatis的逆向工程生成的代码,所以有点冗余,生成方法参考[上一篇文章](https://blog.csdn.net/li18782540852/article/details/83822714)。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cnct.pagehelper.mapper.UserMapper" >
  <resultMap id="BaseResultMap" type="com.cnct.pagehelper.model.User" >
    <constructor >
      <idArg column="id" jdbcType="INTEGER" javaType="java.lang.Integer" />
      <arg column="username" jdbcType="VARCHAR" javaType="java.lang.String" />
      <arg column="password" jdbcType="VARCHAR" javaType="java.lang.String" />
    </constructor>
  </resultMap>
  <sql id="Base_Column_List" >
    id, username, password
  </sql>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
    select 
    <include refid="Base_Column_List" />
    from user
    where id = #{id,jdbcType=INTEGER}
  </select>
  <select id="findAll"  resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List" />
    from user
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
    delete from user
    where id = #{id,jdbcType=INTEGER}
  </delete>
  <insert id="insert" parameterType="com.cnct.pagehelper.model.User" >
    insert into user (id, username, password
      )
    values (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}
      )
  </insert>
  <insert id="insertSelective" parameterType="com.cnct.pagehelper.model.User" >
    insert into user
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        id,
      </if>
      <if test="username != null" >
        username,
      </if>
      <if test="password != null" >
        password,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        #{id,jdbcType=INTEGER},
      </if>
      <if test="username != null" >
        #{username,jdbcType=VARCHAR},
      </if>
      <if test="password != null" >
        #{password,jdbcType=VARCHAR},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.cnct.pagehelper.model.User" >
    update user
    <set >
      <if test="username != null" >
        username = #{username,jdbcType=VARCHAR},
      </if>
      <if test="password != null" >
        password = #{password,jdbcType=VARCHAR},
      </if>
    </set>
    where id = #{id,jdbcType=INTEGER}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.cnct.pagehelper.model.User" >
    update user
    set username = #{username,jdbcType=VARCHAR},
      password = #{password,jdbcType=VARCHAR}
    where id = #{id,jdbcType=INTEGER}
  </update>
</mapper>
  1. 代码写完了吗?不不。。还没有写页面呢,新建一个index.jsp放在WEB-INF/jsp文件夹下
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>
<table width="200" border="1">
    <tr>
        <th scope="col">ID</th>
        <th scope="col">姓名</th>
        <th scope="col">密码</th>
    </tr>
    <c:forEach begin="0" step="1" items="${userList}" var="list" varStatus="userlist">
        <tr>
            <td>${list.id}</td>
            <td>${list.username}</td>
            <td>${list.password}</td>
        </tr>
    </c:forEach>
</table>
<%--之前这里有坑的,分页的边界有问题,就是首页竟然还有上一页,尾页竟然还有下一页。这个坑现在被我填上了,肯定不是最佳的,但是比较容易理解--%>
<p>一共${page.pages}页</p>
<a href="userList.action?page=1">第一页</a>
<a href="userList.action?page=
<c:if test="${page.prePage == 0}">1</c:if>
<c:if test="${page.prePage != 0}">${page.prePage}</c:if>">上一页</a>
<a href="userList.action?page=
<c:if test="${page.nextPage == 0}">${page.pages}</c:if>
<c:if test="${page.nextPage != 0}">${page.nextPage}</c:if>">下一页</a>
<a href="userList.action?page=${page.pages}">最后页</a>
</body>
</html>
  1. 写到这儿本想停笔的,但是发现还没贴数据库的SQL代码。来把最后一个。
/*
Navicat MySQL Data Transfer

Source Server         : localhost
Source Server Version : 50022
Source Host           : localhost:3306
Source Database       : web

Target Server Type    : MYSQL
Target Server Version : 50022
File Encoding         : 65001

Date: 2018-11-15 16:30:52
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(50) default NULL,
  `password` varchar(50) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'a', 'a');
INSERT INTO `user` VALUES ('2', 'b', 'b');
INSERT INTO `user` VALUES ('3', 'c', 'c');
INSERT INTO `user` VALUES ('4', 'd', 'd');
INSERT INTO `user` VALUES ('5', 'e', 'e');
INSERT INTO `user` VALUES ('6', 'f', 'f');
INSERT INTO `user` VALUES ('7', 'g', 'g');
INSERT INTO `user` VALUES ('8', 'h', 'h');
INSERT INTO `user` VALUES ('9', 'i', 'i');
INSERT INTO `user` VALUES ('10', 'j', 'j');
INSERT INTO `user` VALUES ('11', 'k', 'k');
INSERT INTO `user` VALUES ('12', 'l', 'l');
INSERT INTO `user` VALUES ('13', 'm', 'm');
INSERT INTO `user` VALUES ('14', 'n', 'n');
INSERT INTO `user` VALUES ('15', 'o', 'o');
INSERT INTO `user` VALUES ('16', 'p', 'p');
INSERT INTO `user` VALUES ('17', 'q', 'q');
INSERT INTO `user` VALUES ('18', 'r', 'r');
INSERT INTO `user` VALUES ('19', 's', 's');
INSERT INTO `user` VALUES ('20', 't', 't');
INSERT INTO `user` VALUES ('21', 'u', 'u');
INSERT INTO `user` VALUES ('22', 'v', 'v');
INSERT INTO `user` VALUES ('23', 'w', 'w');
INSERT INTO `user` VALUES ('24', 'x', 'x');
INSERT INTO `user` VALUES ('25', 'y', 'y');
INSERT INTO `user` VALUES ('26', 'z', 'z');

写了这么多了上一个分页的效果图吧,是不是好low,哈哈我也觉得好low,low到爆。不过加一点样式就会好多了,这个由你们去加吧。
在这里插入图片描述

求打赏,哈哈

写到这儿也学学别人,求点打赏吧。哈哈。刚开始写博客还有待提高。写得不好仅做参考。
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值