码迷,mamicode.com
首页 > 编程语言 > 详细

Springboot整合Mybatis-Plus

时间:2020-07-01 20:46:53      阅读:91      评论:0      收藏:0      [点我收藏+]

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

springboot 整合 MyBatis-Plus

一、添加相关依赖

<dependency>

    <groupId>com.baomidou</groupId>

    <artifactId>mybatis-plus-generator</artifactId>

    <version>3.0.5</version>

</dependency>

<dependency>

     <groupId>org.apache.velocity</groupId>

     <artifactId>velocity-engine-core</artifactId>

     <version>2.2</version>

</dependency>

<dependency>

     <groupId>org.freemarker</groupId>

     <artifactId>freemarker</artifactId>

     <version>2.3.30</version>

 </dependency>

<dependency>

            <groupId>org.mybatis.spring.boot</groupId>

            <artifactId>mybatis-spring-boot-starter</artifactId>

            <version>1.2.0</version>

     </dependency>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

</dependency>

二、代码生成器

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 {

 

/**

     * <p>

     * 读取控制台内容

     * </p>

     */

    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<FileOutConfig> 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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!