SpringBoot 2.1.x整合MybatisPlus代碼示例

資源相關

核心代碼

  • pom.xml
<dependencies>

        <!--Boot WEB模塊-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--Lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- Druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>


        <!--Mybatis Plus整合-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>

        <!--Mybatis Plus 代碼生成器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.2.0</version>
        </dependency>
        <!--逆向工程模板引擎-->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.1</version>
        </dependency>

        <!--MySQL 相關-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.42</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <!--Lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.4</version>
        </dependency>

        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
  • application.yml
mybatis-plus:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.hf.mp.entity
  #全局配置
  configuration:
    map-underscore-to-camel-case: true
    call-setters-on-nulls: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    cache-enabled: true

spring:
  application:
    name: boot-mp
  datasource:
    username: root
    password: admin
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://192.168.44.121:3306/mp_task_01
    type: com.alibaba.druid.pool.DruidDataSource
    #schema: classpath:sql/task_db.sql
    druid:
      #初始化大小
      initial-size: 5
      min-idle: 5
      max-active: 20
      #等待超時時間
      max-wait: 60000
      #心跳檢測
      time-between-eviction-runs-millis: 60000
      #配置連接在池的最小時間
      min-evictable-idle-time-millis: 300000
      validation-query: SELCET 1
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      #打開PSCache
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      #配置監控統計連接的filters,去掉後監控sql無法統計
      filters: stat,wall,slf4j
      connection-properties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
      #配置DruidStatFilter
      web-stat-filter:
        enabled: true
        url-pattern: "/*"
        exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
      #配置DruidStatViewServlet
      stat-view-servlet:
        url-pattern: "/druid/*"
        #IP白名單
        allow: 127.0.0.1,192.168.44.121
        #IP黑名單
        deny: 192.168.15.85
        reset-enable: false
        login-username: admin
        login-password: 123456

  • MybatisPlusConfig.java
package com.hf.mp.config;

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

/**
 * @Copyright (C), 2017-2019
 * @FileName: MybatisPlusConfig
 * @Author: hf
 * @Date: 2019/9/26 0:58
 * @Description: Mybatis Plus插件配置類
 */
@EnableTransactionManagement
@Configuration
@MapperScan("com.hf.mp.dao")
public class MybatisPlusConfig {

    //分頁插件
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}

  • CodeGenerator.java
package com.hf.mp.util;


import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

/**
 * @Copyright (C), 2017-2019
 * @FileName: CodeGenerator
 * @Author: hf
 * @Date: 2019/9/26 1:03
 * @Description: Mybatis plus逆向工程代碼生成器
 */
public class CodeGenerator {

    public static void main(String[] args) {

        //1、全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "\\boot-mp\\src\\main\\java")//文件輸出路徑
                .setAuthor("hf") //作者
                .setOpen(false) //生成完成是否打開文件夾
                .setFileOverride(true) //是否覆寫
                .setIdType(IdType.AUTO) //主鍵策略
                .setEnableCache(false) //是否啓用緩存
                .setServiceName("%sService") //生成service前綴不帶I
                .setBaseResultMap(true) //生成result 映射
                .setSwagger2(true) //是否啓動swagger
                .setBaseColumnList(true); //生成公衆的sql字段

        //2、數據源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setDbType(DbType.MYSQL)
                .setDriverName("com.mysql.jdbc.Driver")
                .setUrl("jdbc:mysql://192.168.44.121:3306/mp_task_01")
                .setUsername("root")
                .setPassword("admin");

        //3、策略配置
        StrategyConfig sc = new StrategyConfig();
        sc.setCapitalMode(true)
                .setNaming(NamingStrategy.underline_to_camel)
                .setColumnNaming(NamingStrategy.underline_to_camel)
                .setEntityLombokModel(true)
                .setTablePrefix("tb_")
                .setRestControllerStyle(true);

        //4、包名策略配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.hf.mp")
                .setMapper("dao")
                .setService("service")
                .setController("controller")
                .setEntity("entity")
                .setXml("mapper");

        //5、 整合配置
        AutoGenerator ag = new AutoGenerator();
        ag.setGlobalConfig(gc)
                .setDataSource(dsc)
                .setStrategy(sc)
                .setPackageInfo(pc)
                .execute();
    }
}

測試相關

  • 運行CodeGenerator即會自動生成其它目錄結構
  • 測試查詢
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章