Springboot整合Mybatis-Plus

2021-05-01 04:28

阅读:484

标签:驼峰   包名   boot   classpath   mod   marker   添加   控制器   span   

springboot 整合 MyBatis-Plus

一、添加相关依赖

    com.baomidou

    mybatis-plus-generator

    3.0.5

     org.apache.velocity

     velocity-engine-core

     2.2

     org.freemarker

     freemarker

     version>2.3.30version>

 

            org.mybatis.spring.boot

            mybatis-spring-boot-starter

            1.2.0

     

mysql

mysql-connector-java

二、代码生成器

package com.gdfxit.example.springdemo.config;

 

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

 

import org.springframework.util.StringUtils;

 

import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;

import com.baomidou.mybatisplus.core.toolkit.StringPool;

import com.baomidou.mybatisplus.generator.AutoGenerator;

import com.baomidou.mybatisplus.generator.InjectionConfig;

import com.baomidou.mybatisplus.generator.config.DataSourceConfig;

import com.baomidou.mybatisplus.generator.config.FileOutConfig;

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.TemplateConfig;

import com.baomidou.mybatisplus.generator.config.po.TableInfo;

import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import com.mysql.cj.jdbc.Driver;

 

public class CodeGenerator {

 

/**

     *

     * 读取控制台内容

     *

     */

    public static String scanner(String tip) {

        Scanner scanner = new Scanner(System.in);

        StringBuilder help = new StringBuilder();

        help.append("请输入" + tip + "");

        System.out.println(help.toString());

        if (scanner.hasNext()) {

            String ipt = scanner.next();

            if (!StringUtils.isEmpty(ipt)) {

                return ipt;

            }

        }

        throw new MybatisPlusException("请输入正确的" + tip + "");

    }

    

    public static void main(String[] args) {

     // 代码生成器

AutoGenerator mpg = new AutoGenerator();

// 全局配置

GlobalConfig gc  = new GlobalConfig();

String projectPath = System.getProperty("user.dir");

gc.setOutputDir(projectPath+"/src/main/java");

 // 设置作者

gc.setAuthor("");

// 是否打开输出目录

gc.setOpen(false);

// 实体属性 Swagger2 注解

//gc.setSwagger2(true);

// 开启 BaseResultMap

gc.setBaseResultMap(true);

// 接口命名方式

gc.setServiceName("%sService");

mpg.setGlobalConfig(gc);

 

// 数据源配置

DataSourceConfig dsc = new DataSourceConfig();

 

dsc.setDriverName("com.mysql.cj.jdbc.Driver");

dsc.setUsername("");

dsc.setPassword("");

dsc.setUrl("");

mpg.setDataSource(dsc);

 

// 包配置

PackageConfig pc = new PackageConfig();

pc.setParent("com.gdfxit.example.springdemo");

mpg.setPackageInfo(pc);

 

 // 自定义配置

        InjectionConfig cfg = new InjectionConfig() {

            @Override

            public void initMap() {

                // to do nothing

            }

        };

 

        // 如果模板引擎是 freemarker

        String templatePath = "/templates/mapper.xml.ftl";

        // 如果模板引擎是 velocity

        // String templatePath = "/templates/mapper.xml.vm";

        

        // 自定义输出配置

        List focList = new ArrayList();

        

        // 自定义配置会被优先输出

        focList.add(new FileOutConfig(templatePath) {

            @Override

            public String outputFile(TableInfo tableInfo) {

                // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!

                return projectPath + "/src/main/resources/mapper/"

                        + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;

            }

        });

        

        cfg.setFileOutConfigList(focList);

        mpg.setCfg(cfg);

        

        // 配置模板

        TemplateConfig templateConfig = new TemplateConfig();

        

        templateConfig.setXml(null);

        mpg.setTemplate(templateConfig);

        

     // 策略配置

        StrategyConfig strategy = new StrategyConfig();

        // 下划线转驼峰命名

        strategy.setNaming(NamingStrategy.underline_to_camel);

        strategy.setColumnNaming(NamingStrategy.underline_to_camel);

        //strategy.setSuperEntityClass("你自己的父类实体,没有就不用设置!");

        // 启用 Lombok 插件

        //strategy.setEntityLombokModel(true);

        strategy.setRestControllerStyle(true);

        // 公共父类

        //strategy.setSuperControllerClass("你自己的父类控制器,没有就不用设置!");

        // 写于父类中的公共字段

        //strategy.setSuperEntityColumns("id");

        // 设置表名控制台输出

        strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));

        strategy.setControllerMappingHyphenStyle(true);

        strategy.setTablePrefix(pc.getModuleName() + "_");

        mpg.setStrategy(strategy);

        // 设置生成模板

        mpg.setTemplateEngine(new FreemarkerTemplateEngine());

        mpg.execute();

        

}

}

 

生成之后项目的结构:

 技术图片

 

 

 

三、修改启动类

@MapperScan(“mapper接口的包名”)

 

 技术图片

 

 

四、修改配置文件

#mybatis-plus 配置

mybatis-plus.mapper-locations=classpath:/mapper/*.xml

mybatis-plus.type-aliases-package=生产实体类的包名

mybatis-plus.global-config.db-config.db-type=mysql

mybatis-plus.global-config.db-config.id-type=input

mybatis-plus.global-config.db-config.field-strategy=NOT_NULL

mybatis-plus.global-config.db-config.column-underline=true

mybatis-plus.global-config.field-strategy=NOT_NULL

mybatis-plus.configuration.map-underscore-to-camel-case=true

mybatis-plus.configuration.cache-enabled=false

mybatis-plus.configuration.jdbc-type-for-null=null

#配置sql打印日志

mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

#数据源配置

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url=url

spring.datasource.username=username

spring.datasource.password=password

Springboot整合Mybatis-Plus

标签:驼峰   包名   boot   classpath   mod   marker   添加   控制器   span   

原文地址:https://www.cnblogs.com/kali5k/p/13220877.html


评论


亲,登录后才可以留言!