0
点赞
收藏
分享

微信扫一扫

mybatisplus 示例练习3 分页page


新建springboot工程

mybatisplus 示例练习3 分页page_System

mybatisplus 示例练习3 分页page_spring boot_02

导入依赖

<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());
    }


}

举报

相关推荐

0 条评论