zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    FC/NES 音乐示例程序 生日快乐歌
    FC/NES PPU卷轴滚屏示例 歌词显示
    HZK16汉字16*16点阵字库的使用及示例程序
    6502 通用宏汇编器宏汇编伪指令说明
    "在您可以登录前, 此版本的 Windows 必须被 Microsoft 激活. 你想现在激活它吗?" 在 XP SP3 中的一种解决方案
    使用 WM_COPYDATA 在进程间共享数据
    51驱动1602液晶显示器的程序
    汉字 全角字符 特殊关键字 ASCII编码区位
    actionscript(as) 项目中 使用 fla 加载 fla
    未能加载文件或程序集“WebGrease, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
  • 原文地址:https://www.cnblogs.com/kali5k/p/13220877.html
Copyright © 2011-2022 走看看