(二)Mybatis-Plus的安装配置

时间:2022-07-22
本文章向大家介绍(二)Mybatis-Plus的安装配置,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

上一篇文章我们认识了Mybatis-Plus,这篇文章我们一起学习Mybatis-Plus在项目中怎么使用。

项目结构如下:

  src
   ├─main
   │  ├─java
   │  │  └─com
   │  │      └─example
   │  │          └─mybatisplus
   │  │              └─config
   │  └─resources
   │      ├─static
   │      └─templates
   └─test
       └─java
           └─com
               └─example
                   └─mybatisplus

一、安装

全新的 MyBatis-Plus 3.0 版本基于 JDK8,提供了 lambda 形式的调用,所以安装集成 MP3.0 要求如下:

  • JDK 8+
  • Maven

JDK7 以及下的请参考 MP2.0 版本官方文档,地址:2.0 文档

我们在该项目中集成了mybatis-plus,lombok,swagger,集体配置如下:

# Spring Boot

Maven:

<properties>
    <java.version>1.8</java.version>
    <spring-boot.version>2.0.5.RELEASE</spring-boot.version>
    <mybatis-plus.version>3.0-RELEASE</mybatis-plus.version>
    <swagger.version>2.9.2</swagger.version>
    <lombok.version>1.16.10</lombok.version>
</properties>
<!-- 连接mysql -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- mybatis-plus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>${mybatis-plus.version}</version>
</dependency>
<!-- lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>${lombok.version}</version>
    <scope>provided</scope>
</dependency>
<!-- swagger配置 -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>${swagger.version}</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>${swagger.version}</version>
</dependency>

# Spring MVC

Maven:

<!-- mybatis-plus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>${mybatis-plus.version}</version>
</dependency>
<!-- 连接mysql -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>${lombok.version}</version>
    <scope>provided</scope>
</dependency>
<!-- swagger配置 -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>${swagger.version}</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>${swagger.version}</version>
</dependency>

引入 MyBatis-Plus 之后请不要再次引入 MyBatis 以及 MyBatis-Spring,以避免因版本差异导致的问题。

二、配置

MyBatis-Plus 的配置异常的简单,我们仅需要一些简单的配置即可使用 MyBatis-Plus 的强大功能。

# Spring Boot

配置 MapperScan 注解

@SpringBootApplication
@MapperScan("com.example.mybatis-plus.**.mapper")
public class MybatisPlusApplication {

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

}

配置application.yml

mybatis-plus:
  # xml地址
  mapper-locations: classpath*:mapper/*/*Mapper.xml
  # 实体扫描,多个package用逗号或者分号分隔 #自己的实体类地址
  type-aliases-package: com.example.mybatis-plus
  configuration:
    # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    #开启驼峰命名法
    map-underscore-to-camel-case: true

# Spring MVC

  • 配置 MapperScan
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.baomidou.mybatisplus.samples.quickstart.mapper"/>
</bean>
  • 调整 SqlSessionFactory 为 MyBatis-Plus 的 SqlSessionFactory
<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
</bean>

通常来说,一般的简单工程,通过以上配置即可正常使用 MyBatis-Plus。

# swagger配置

package com.example.mybatisplus.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * Copyright (C), 2016-2019, Mobius-Vision
 * FileName: SwaggerConfig
 * Author: liuwenxu
 * Date: 2019/7/10 14:59
 * Description: 接口文档说明  http://localhost:8089/swagger-ui.html#/
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.mybatis-plus.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("mybatis-plus")
                .description("mybatis-plus")
                .contact(new Contact("liuwenxu", "", ""))
                .version("2.0")
                .build();
    }

}

Q.E.D.