Springboot整合Mybatis-Plus


springboot 整合 MyBatis-Plus

一、添加相關依賴

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


<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.1.tmp</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>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>3.0.20.RELEASE</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("jdbc:mysql://localhost:3306/數據庫名稱?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true");

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=jdbc:mysql://localhost:3306/數據庫名稱?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true

spring.datasource.username=username

spring.datasource.password=password


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM