实验:spring-boot整合mybatis-plus实现分页查询的功能

1.建立基于sping-boot的javaweb工程(java1.8)

按结构建立包

 

 2.POM.XML添加支持mybatis-plus,sql,lombok

<!--mybatis-plus的springboot支持-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>
        <!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>

        </dependency>
        <!--简化代码的工具包-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
View Code

3.修改.yml内容

 

 

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志
    map-underscore-to-camel-case: true
    # 该配置就是将带有下划线的表字段映射为驼峰格式的实体类属性
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test_db?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8
    username: root
    password: 123456
View Code

4.bean文件:对照mysql数据表,同名

package com.yan.plus.mybatisplus.bean;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

@Data
public class Person  {

    @TableId
    private Integer id;
    private String name;
    private Integer age;

}
View Code

5.config文件,支持分页

package com.yan.plus.mybatisplus.config;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration
@ConditionalOnClass(value = {PaginationInterceptor.class})
public class MybatisPlusConfig {

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        return paginationInterceptor;
    }

}
View Code

6.mapper文件

package com.yan.plus.mybatisplus.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yan.plus.mybatisplus.bean.Person;

public interface PersonMapper extends BaseMapper<Person> {

}
View Code

7.service文件,实现功能

package com.yan.plus.mybatisplus.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yan.plus.mybatisplus.bean.Person;
import com.yan.plus.mybatisplus.bean.PersonVo;
import com.yan.plus.mybatisplus.mapper.PersonMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class PersonServiceImpl {

    @Resource
    PersonMapper personMapper;
    //查询全部
    public List<Person> queryAll() {
        return personMapper.selectList(null);
    }
    public Person queryById(Person person) {
        return personMapper.selectById(person.getId());
    }

    //添加一条数据
    public int add(Person person) {
        return personMapper.insert(person);
    }

    //计数
    public int count() {
        QueryWrapper<Person> userQueryWrapper = new QueryWrapper<>();
        return personMapper.selectCount(userQueryWrapper);
    }

    //更新
    // 通过ID修改信息
    public void changeUserById(Person person) {
        int num = personMapper.updateById(person);
        System.out.println("影响行数:" + num);
    }

   // 通过ID删除
    public int deleteById(Person person) {
        return personMapper.deleteById(person.getId());
    }


    //分页查询----YTH
    public PersonVo queryList(Integer current, Integer size){
        PersonVo personVo = new PersonVo();
        IPage<Person> page = new Page<>(current, size);
        personMapper.selectPage(page, null);
        personVo.setCurrent(current);
        personVo.setSize(size);
        personVo.setTotal(page.getTotal());
        personVo.setPersonList(page.getRecords());
        return personVo;
    }

}
View Code

8.应用增加扫描mapper

 

 9.增加分页bean

 

 

---------------------------

10.测试

11。工程代码下载

链接:https://pan.baidu.com/s/1K290E7qHJFNtTLOInKcS4w
提取码:n9nd
--来自百度网盘超级会员V5的分享

 

posted @ 2022-02-28 15:37  cqmcu_yth  阅读(182)  评论(0编辑  收藏  举报