新建springboot工程
导入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
配置
application.properties
#springboot默认数据源
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimeZone=UTC
spring.datasource.username=root
spring.datasource.password=mysql123
#默认日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#数据库表前缀
mybatis-plus.global-config.db-config.table-prefix=p_
#主键自增策略,mysql自增
mybatis-plus.global-config.db-config.id-type=auto
#配置别名
mybatis-plus.type-aliases-package=com.shrimpking.pojo
数据库,建表
drop table if exists p_user;
create table p_user(
uid bigint(20) not null auto_increment,
user_name varchar(20) not null,
age int(11),
email varchar(50),
is_deleted tinyint default 0 comment '逻辑删除,0未删除,1删除',
primary key(uid)
);
insert into p_user(uid,user_name,age,email) values (null,'a1',22,'xx@xx.com');
insert into p_user(uid,user_name,age,email) values (null,'a2',20,'xx@xx.com');
insert into p_user(uid,user_name,age,email) values (null,'b1',23,'xx@xx.com');
insert into p_user(uid,user_name,age,email) values (null,'b2',10,'xx@xx.com');
insert into p_user(uid,user_name,age,email) values (null,'c3',30,'xx@xx.com');
实体类
User.java
package com.shrimpking.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* Created by IntelliJ IDEA.
*
* @Author : Shrimpking
* @create 2023/6/10 15:37
*/
@Data
@TableName("p_user")
public class User
{
@TableId(value = "uid",type = IdType.AUTO)
private Long id;
@TableField("user_name")
private String name;
private Integer age;
private String email;
@TableLogic
private Integer isDeleted;
}
Mapper接口
UserMapper.java
package com.shrimpking.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.shrimpking.pojo.User;
import org.springframework.stereotype.Repository;
/**
* Created by IntelliJ IDEA.
*
* @Author : Shrimpking
* @create 2023/6/10 15:40
*/
@Repository
public interface UserMapper extends BaseMapper<User>
{
/**
* 自定义查询也可以分页,通过年龄查询用户并分页
* @param page mybatis-plus提供的分页对象,必须是第一个参数
* @param age
* @return
*/
Page<User> selectPageVo(Page<User> page,Integer age);
}
UserMapper.xml
<?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.shrimpking.mapper.UserMapper">
<!-- 自定义查询也可以分页,通过年龄查询用户并分页 -->
<select id="selectPageVo" resultType="User">
select
uid as id,
user_name as name,
age,
email,
is_deleted
from p_user
where age >#{age}
</select>
</mapper>
配置类
MybatisPlusConfig.java
package com.shrimpking.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* Created by IntelliJ IDEA.
*
* @Author : Shrimpking
* @create 2023/6/10 15:47
*/
@Configuration
@MapperScan("com.shrimpking.mapper")
public class MybatisPlusConfig
{
/**
* 配置分页插件的
* @return
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor()
{
MybatisPlusInterceptor interceptor
= new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
UserService.java
package com.shrimpking.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shrimpking.pojo.User;
/**
* Created by IntelliJ IDEA.
*
* @Author : Shrimpking
* @create 2023/6/10 15:40
*/
public interface UserService extends IService<User>
{
}
UserServiceImpl.java
package com.shrimpking.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.shrimpking.mapper.UserMapper;
import com.shrimpking.pojo.User;
import com.shrimpking.service.UserService;
import org.springframework.stereotype.Service;
/**
* Created by IntelliJ IDEA.
*
* @Author : Shrimpking
* @create 2023/6/10 15:41
*/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService
{
}
测试
PageTest.java
package com.shrimpking;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.shrimpking.mapper.UserMapper;
import com.shrimpking.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
/**
* Created by IntelliJ IDEA.
*
* @Author : Shrimpking
* @create 2023/6/10 15:51
*/
@SpringBootTest
public class PageTest
{
@Autowired
private UserMapper userMapper;
@Test
public void test()
{
//测试分页
//SELECT uid AS id,user_name AS name,age,email,is_deleted
// FROM p_user LIMIT ?,?
Page<User> page = new Page<>(2,3);
Page<User> pageList = userMapper.selectPage(page, null);
System.out.println(pageList);
}
@Test
public void test2()
{
//测试分页
//SELECT uid AS id,user_name AS name,age,email,is_deleted
// FROM p_user LIMIT ?
Page<User> page = new Page<>(1,3);
Page<User> pageList = userMapper.selectPage(page, null);
System.out.println("getRecords:" +pageList.getRecords());
System.out.println("getCurrent:" + pageList.getCurrent());
System.out.println("getSize:" + pageList.getSize());
System.out.println("getPages:" + pageList.getPages());
System.out.println("getTotal:" + pageList.getTotal());
System.out.println("getList:" + pageList.hasNext());
System.out.println("getPrevious:" + pageList.hasPrevious());
}
@Test
public void test3()
{
//
Page<User> page = new Page<>();
page.setCurrent(1);
page.setSize(3);
//select uid as id,user_name as name,age,email,is_deleted
// from p_user where age >? LIMIT ?
Page<User> pageList = userMapper.selectPageVo(page, 20);
System.out.println("getRecords:" +pageList.getRecords());
System.out.println("getCurrent:" + pageList.getCurrent());
System.out.println("getSize:" + pageList.getSize());
System.out.println("getPages:" + pageList.getPages());
System.out.println("getTotal:" + pageList.getTotal());
System.out.println("getList:" + pageList.hasNext());
System.out.println("getPrevious:" + pageList.hasPrevious());
}
}