mybatisPlus生成项目

Posted newbest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatisPlus生成项目相关的知识,希望对你有一定的参考价值。

记录是为了更好的成长!

mybatisPlus生成工具,这里以spgingBoot构建项目说明

1、引入jar

如果使用 https://start.spring.io/ 构建springBoot项目只需选 web 和 mysql即可,然后加入下面的依赖到pom文件中

     <!-- 阿里巴巴druid数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.10</version>
        </dependency>
        
        <!-- mybatisplus与springboot整合 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>2.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.1</version>
        </dependency>

 2、java文件

package com;

import java.util.ArrayList;
import java.util.List;

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.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

/**
 * <p>
 * 代码生成器演示
 * </p>
 */
public class MybatisPlusGenerator {

    public static void main(String[] args) {
        AutoGenerator mpg = new AutoGenerator();

      /*
      * 读取数据库配置
      */
      String url = "";
      String driverName = "";
      String userName = "";
      String password = "";

      Properties properties = new Properties();
      try {
        properties = PropertiesLoaderUtils.loadAllProperties("application.properties");
        url = properties.getProperty("spring.datasource.url");
        driverName = properties.getProperty("spring.datasource.driver-class-name");
        userName = properties.getProperty("spring.datasource.username");
        password = properties.getProperty("spring.datasource.password");
      } catch (IOException e) {
        e.printStackTrace();
      }

/*
         * 配置路径
         */
        String projectPath = System.getProperty("user.dir"); //获取项目路径
        String objPath = projectPath + "/src/main/java";     //获取java目录
        String parentPackage = "com";                         //配置包路径
        
        /*
         * 全局配置
         */
        GlobalConfig gc = new GlobalConfig();
        gc.setOutputDir            (objPath);            //配置路径
        gc.setOpen                (false);            //是否打开生成的文件夹
        gc.setAuthor            ("author");            //author        
        /* 自定义文件命名,注意 %s 会自动填充表实体属性! */
        gc.setMapperName        ("%sMapper");        //设置mapper接口后缀
        gc.setServiceName        ("%sService");        //设置Service接口后缀
        gc.setServiceImplName    ("%sServiceImpl");    //设置Service实现类后缀
        gc.setControllerName    ("%sController");    //设置controller类后缀
        gc.setXmlName            ("%sMapper");        //设置sql映射文件后缀
        gc.setFileOverride(true);                    // 是否覆盖同名文件,默认是false
        gc.setActiveRecord(false);                    // 不需要ActiveRecord特性的请改为false
        gc.setEnableCache(false);                    // XML 二级缓存
        gc.setBaseResultMap(true);                    // XML ResultMap
        gc.setBaseColumnList(false);                // XML columList
        mpg.setGlobalConfig(gc);

        /*
         * 数据源配置
         */
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setDbType(DbType.MYSQL)
                .setDriverName(driverName)
                .setUrl(url)
                .setUsername(userName)
                .setPassword(password);
        mpg.setDataSource(dsc);
         
        /*
         * 策略配置
         */
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel)    // 表名生成策略
                .setRestControllerStyle(true)                    //设置controller自动加RestController注解
                //.setInclude(new String[] {"user"});            //修改替换成你需要的表名,多个表名传数组,如果注释掉就生成库中所有的表
                //.setTablePrefix(new String[] { "t_" })        // 此处可以修改为您的表前缀
                ;        
        mpg.setStrategy(strategy);

        // 包配置
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent(parentPackage)
               .setController("controller")
               /*.setService("service")            //服务接口
                .setServiceImpl("service.impl")        //服务实现
                .setMapper("mapper")                //dao层
                .setXml("mapper")                    //dao层对应的xml文件
                .setEntity("entity")*/;                //pojo对象
        mpg.setPackageInfo(packageConfig);
        
        // 自定义配置
        InjectionConfig cfg = new InjectionConfig() {
            @Override
            public void initMap() {
                // to do nothing
            }
        };
        
        //自定义xml的存放路径
        List<FileOutConfig> focList = new ArrayList<>();
        focList.add(new FileOutConfig("/templates/mapper.xml.vm") {
            @Override
            public String outputFile(TableInfo tableInfo) {
                // 自定义Mapper.xml文件存放的路径
                return projectPath + "/src/main/resources/mappers/"
                        + tableInfo.getEntityName() + "Mapper.xml";
            }
        });
        cfg.setFileOutConfigList(focList);
        mpg.setCfg(cfg);
        
        // 关闭默认 xml 生成,调整生成 至 根目录
        mpg.setTemplate(new TemplateConfig().setXml(null));

        // 执行生成
        mpg.execute();
    }
}

 3、运行java文件,刷新项目即可 

4、启动springBoot项目需要在启动类加@MapperScan注解,指定mapper的目录

5、生成的项目并不一定满足我们的需要,需要自定义sql查询,直接在生成的mapper接口和mapper映射文件中追加即可

注意:
     如果需要自定义sql语句,就必须要在配置文件中指定   mybatis-plus.mapper-locations=classpath:mappers/*.xml
                        不能写成   mybatis.mapper-locaitons=classpath:mappers/*.xml

 

 github示例: https://github.com/kh5218/DemoForSpringBoot/tree/master/mybatisplus

 

 

以上内容代表个人观点,仅供参考,不喜勿喷。。。

以上是关于mybatisPlus生成项目的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot+MyBatisPlus+Vue 前后端分离项目快速搭建后端篇快速生成后端代码封装结果集增删改查模糊查找毕设基础框架

SpringBoot+MyBatisPlus+Vue 前后端分离项目快速搭建后端篇快速生成后端代码封装结果集增删改查模糊查找毕设基础框架

mybatisPlus生成项目

SpringBoot+MyBatisPlus+Vue 前后端分离项目快速搭建前端篇快速生成后端代码封装结果集增删改查模糊查找毕设基础框架

SpringBoot+MyBatisPlus+Vue 前后端分离项目快速搭建前端篇快速生成后端代码封装结果集增删改查模糊查找毕设基础框架

springBoot --- mybatisPlus自动生成代码