Springboot整合Mybatis-Plus加自定义分页 - Go语言中文社区

Springboot整合Mybatis-Plus加自定义分页


前言

上一篇发布的是springboot整合mybatis和mybatis的分页插件,这次就直接上手整合mybatis-Plus。

第一步,创建spring boot,导入相应依赖

  1. spring-boot-starter-web ,springmvc的依赖;

  2. mybatis-spring-boot-starter ,springboot整合mybatis依赖;

  3. mysql-connector-java ,springboot整合mysql依赖;

  4. lombok ,springboot整合实体类的getsettostring等方法依赖;

  5. spring-boot-starter-test ,单元测试依赖;

    org.springframework.boot spring-boot-starter-web
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
             <scope>runtime</scope>
         </dependency>
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
             <optional>true</optional>
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-boot-starter</artifactId>
             <version>3.1.1</version>
         </dependency>
    

    如果将xml文件放入src包中需要再定义

     <resources>
          <resource>
              <directory>src/main/java</directory>
              <filtering>false</filtering>
              <includes>
                  <include>**/mapper/*.xml</include>
              </includes>
          </resource>
      </resources>
    

第二步,配置application.yml文件

进行数据库的连接,和Mybatis-Plus的路径扫描控制台打印sql语句等等。

	    spring:
	      datasource:
	        url: jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8
	        username: root
	        password: root
	        driver-class-name: com.mysql.cj.jdbc.Driver
	    mybatis-plus:
	      configuration:
	        map-underscore-to-camel-case: true
	        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
	    
	      mapper-locations: classpath:com/bdqn/mapper/*.xml

启动类进行扫描mapper接口

package com.xxx;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.xxx.dao")
public class Demo01MybatisplusApplication {

    public static void main(String[] args) {
        SpringApplication.run(Demo01MybatisplusApplication.class, args);
    }

}

第三步,继承方法

在Mapper接口中继承BaseBaseMapper类,这是Mybatis-Plus中的内置类,有很多操作数据库的方法
在这里插入图片描述
进行继承,即可使用方法。

package com.xxx.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xxx.entity.User;

public interface UserDao extends BaseMapper<User> {
}

最终在Service实现类中使用相应方法。

第四步,自定义分页使用

在配置文件中注册

	import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
	import org.springframework.context.annotation.Bean;
	import org.springframework.context.annotation.Configuration;
	import org.springframework.transaction.annotation.EnableTransactionManagement;
	
	@EnableTransactionManagement
	@Configuration
	public class MybatisPlusConfig {
	
	    /**
	     * 分页插件
	     */
	    @Bean
	    public PaginationInterceptor paginationInterceptor() {
	        return new PaginationInterceptor();
	    }
	}

在实现层进行操作,万变不离其宗,传入当前页数和当页条数

@Service
@Transactional
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;

    @Override
    public IPage getPageAllByUser() {
        Page page = new Page(1,2);
        return userDao.getPageAllByUser(page);
    }
}

增加条件搜索分页
Service层

@Service
@Transactional
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;

    @Override
    public IPage getPageAllByUser(User user) {
    //分页处理,显示第pageNum页的pageSize条数据
        Page page = new Page(1,2);
        return userDao.getPageAllByUser(page,user);
    }
}

Mapper层

public interface UserDao extends BaseMapper<User> {
    IPage getPageAllByUser(Page page,User user);
}

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.bdqn.dao.UserDao">
<select id="getPageAllByUser" resultType="com.bdqn.entity.User">
select * from t_user
    <if test="age!=null">
       where age = #{age,jdbcType=INTEGER}
    </if>
</select>
</mapper>

简单的自定义条件分页也就完成了。

总结

springboot整合Mybatis-Plus也就完成了,我在这里也是参考了Mybatis-Plus的中文官网,官网中讲解的很清晰,也有很多的注解和内置方法,以上也是本人的自我理解,如有不当之处,请大家包含,下次我要整理的是一个概念: 读写分离

Mybatis-Plus官网:https://mp.baomidou.com/

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_43890267/article/details/92011853
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-28 01:25:26
  • 阅读 ( 854 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢