idea创建spring boot项目整合mybatis-plus

说明:需要看在idea中怎么创建一个springboot项目的步骤可看这篇文章 最简单的idea构建微服务模块 其中的第三点中的biz,构建一个单独的springboot项目,这篇文章主要介绍整合mybatis-plus。

导入mysql 驱动包:

		<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.17</version>
        </dependency>

导入mybatis-plus starter包:

		<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.2</version>
        </dependency>

注意:导入包之后必须要在配置文件中设置数据库连接相关信息,否则项目会启动报错:
在这里插入图片描述
在yml中添加数据库的连接信息 (新建好的spring boot项目是叫做application.properties文件,我个人习惯用yml文件,所以改为了yml文件-直接将后缀改为yml就行):

server:
  port: 8080
spring:
  datasource:
    username: 你的数据库连接用户(一般是root)
    password: 你的数据库密码
    url: jdbc:mysql://数据库ip地址:数据库端口号/数据库名称?setUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true
    driver-class-name: com.mysql.cj.jdbc.Driver

在这里插入图片描述
接下来配置mybatis的相关信息:

mybatis-plus:
  mapper-locations: classpath:/mapper/*.xml
  global-config:
    db-config:
      id-type: auto
      logic-delete-value: 1
      logic-not-delete-value: 0

在这里插入图片描述
其中id-type: auto是指数据库表主键采用自增策略,logic-delete-value: 1表示数据库表中用于逻辑删除的字段值为1表示删除,logic-not-delete-value: 0值为0表示未删除。

配置mybatis-plus分页信息:

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/**
 * 分页插件配置
 * 注意,在集成mybatisplus之后使用mybatisplus的selectPage传入page和条件并不能实现数据分页以及总页数总条数,
 * 需要配置这个类,MapperScan配置到dao层需要扫描的位置,然后才能实现mybatisplus的自动分页,写在common中的话需要配置在springboot start中
 */
@EnableTransactionManagement
@Configuration
@MapperScan("com.my.test.**.dao")
public class MybatisPlusConfig {
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
        //设置为true之后如果传入大于总页数的页数会去查询第一页的数据,当然返回的current也是1
        paginationInterceptor.setOverflow(false);
        // 设置最大单页限制数量,默认 500 条,-1 不受限制
        paginationInterceptor.setLimit(-1);
        // 开启 count 的 join 优化,只针对部分 left join
        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
        return paginationInterceptor;
    }
}

注意:这个类需要被spring管理,所以对于spring boot项目,默认是扫描加载启动类所在包及其子包的类,所以该类我写在了启动类所在包的子包里面;如果是微服务的话,除了在每个模块中都配置该类之外(这样代码重复较多,修改也不方便),可以将这个类写在公共的common模块中,然后采用spring boot的SPI机制加载这个类。

测试:
新增数据:
在这里插入图片描述
在这里插入图片描述
分页查询:
在这里插入图片描述
需要集成swagger的话可以看 spring boot整合swagger-bootstrap-ui

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值