MyBatis分页操作与通过mybatis-generator工具生成java代码
1. MyBatis的分页
通过分页插件来完成对数据库表记录的分页查询。
在javaWEB的学习过程中,使用JDBC的方式实现过关于数据的分页,主要实现的原理:
在查询的语句后面添加limit关键字,然后实现查询的数据分页功能。但是如果需要在所有的查询中都添加分页的话,那么就需要在所有的select语句后面添加limit关键字,这样的工作量是巨大的。同时也要改动大量的代码。
mybatis中提供的插件(plugin)机制,运行在mybatis的原有的处理逻辑上添加一些额外的逻辑,这样既不需要修改原来的代码,而且还可以非常容易进行实现。
mybatis的插件机制,本质就拦截指定的查询操作,然后在查询的操作添加相关的分页逻辑。
使用PageHelper实现分页
1.创建数据库表
#用户基本信息表
create table t_user(
user_id int primary key auto_increment,
user_name varchar(20),
user_age int,
user_address varchar(30)
);
2.创建项目
3.修改项目结构
4.Pom.xml配置依赖
<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.wangxing.mybatistest</groupId>
<artifactId>MyBatisTest1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<!-- 配置数据访问驱动 -->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<!-- MyBatis框架的依赖包 -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- 配置分页依赖 -->
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
</dependencies>
</project>
5.创建javabean
package com.wangxing.mybatis.bean;
public class UserBean {
private int userid;
private String username;
private int userage;
private String useraddress;
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getUserage() {
return userage;
}
public void setUserage(int userage) {
this.userage = userage;
}
public String getUseraddress() {
return useraddress;
}
public void setUseraddress(String useraddress) {
this.useraddress = useraddress;
}
}
6.创建数据访问接口
package com.wangxing.mybatis.mapper;
import java.util.List;
import com.wangxing.mybatis.bean.UserBean;
/**
* 数据访问接口
* @author 14336
*
*/
public interface UserMapper {
/**
* 添加的方法
* @param userBeans
*/
public void insertUser(List<UserBean> userBeans);
/**
* 查询的方法
*/
public List<UserBean> selectUser();
}
7.SQL映射文件
<?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.wangxing.mybatis.mapper.UserMapper">
<insert id="insertUser" parameterType="java.util.List">
insert into t9_user values
<foreach collection="list" item="user" separator=",">
(null,#{user.username},#{u