码迷,mamicode.com
首页 > 其他好文 > 详细

mybatisPlus生成项目

时间:2019-05-12 19:44:50      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:github   ica   gen   新项目   生成器   prefix   语句   import   阿里巴巴   

记录是为了更好的成长!

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生成项目

标签:github   ica   gen   新项目   生成器   prefix   语句   import   阿里巴巴   

原文地址:https://www.cnblogs.com/newbest/p/10853144.html

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