mybatisplus代码生成器

mybatisplus代码生成器

作者: 冷文

全网最全的网络资源分享网站

手机扫码查看

标签:

javamybatis

特别声明:文章多为原创,资源一般为网络转载,如有侵权请联系!

mybatisplus代码生成器

代码生成器,根据数据库生成实体类,dao,service,controller层代码以及mapper映射文件,简化开发

配置

在pom文件中添加如下依赖

<!-- 版本 -->
<mybatisplus.version>3.2.0</mybatisplus.version>
<lang3.version>3.9</lang3.version>

<!--  mybatisplus代码生成器依赖  -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>${mybatisplus.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.1</version>
</dependency>
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.29</version>
</dependency>
<dependency>
    <groupId>com.ibeetl</groupId>
    <artifactId>beetl</artifactId>
    <version>3.0.11.RELEASE</version>
</dependency>

<!-- common-lang3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>${lang3.version}</version>
</dependency>

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency>
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.3</version>
</dependency>

复制如下代码到项目任意位置

package cn.kevinlu98;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
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.rules.NamingStrategy;
import org.apache.commons.lang3.StringUtils;

import java.util.Scanner;

public class CodeGenerator {

    private static String author ="Kevin·Lu";//作者名称
    private static String outputDir ="/Users/lengwen/Desktop/erp";//生成的位置
    private static String driver ="com.mysql.cj.jdbc.Driver";//驱动,注意版本
    //连接路径,注意修改数据库名称
    private static String url ="jdbc:mysql://localhost:3306/erp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
    private static String username ="root";//数据库用户名
    private static String password ="root";//数据库密码
    private static String tablePrefix ="t_";//数据库表的前缀,如t_user
    private static String parentPackage = "cn.kevinlu98";//顶级包结构
    private static String dao = "dao";//数据访问层包名称
    private static String service = "service";//业务逻辑层包名称
    private static String entity = "entity";//实体层包名称
    private static String controller = "controller";//控制器层包名称
    private static String mapperxml = "mapper";//mapper映射文件包名称
    private static String moduleName = "sys";//模块名

    /**
     * <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.isNotEmpty(ipt)) {
                return ipt;
            }
        }
        throw new MybatisPlusException("请输入正确的" + tip + "!");
    }

    public static void main(String[] args) {

        //1. 全局配置
        GlobalConfig config = new GlobalConfig();
        config.setAuthor(author) // 作者
                .setOutputDir(outputDir) // 生成路径
                .setFileOverride(true)  // 文件覆盖
                .setIdType(IdType.AUTO) // 主键策略
                .setServiceName("%sService")  // 设置生成的service接口的名字的首字母是否为I,加%s则不生成I
                .setBaseResultMap(true)    //映射文件中是否生成ResultMap配置
                .setBaseColumnList(true);    //生成通用sql字段

        //2. 数据源配置
        DataSourceConfig dsConfig  = new DataSourceConfig();
        dsConfig.setDbType(DbType.MYSQL)  // 设置数据库类型
                .setDriverName(driver)    //设置驱动
                .setUrl(url)            //设置连接路径
                .setUsername(username)    //设置用户名
                .setPassword(password);    //设置密码
        //4. 包名策略配置
        PackageConfig pkConfig = new PackageConfig();
        pkConfig.setParent(parentPackage)//顶级包结构
                .setMapper(dao)    //数据访问层
                .setService(service)    //业务逻辑层
                .setController(controller)    //控制器
                .setEntity(entity)    //实体类
                .setXml(mapperxml)//mapper映射文件
                .setModuleName(scanner("模块名"));//模块名;

        //3. 策略配置
        StrategyConfig stConfig = new StrategyConfig();
        stConfig.setCapitalMode(true) //全局大写命名
                .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
                .setColumnNaming(NamingStrategy.underline_to_camel)
                //.setTablePrefix(tablePrefix) //表前缀
                .setInclude(scanner("请输入表名(多个以英文逗号隔开):").split(","))
                .setTablePrefix(pkConfig.getModuleName()+"_")
                //.setInclude(tables) // 生成的表
                .setControllerMappingHyphenStyle(true);





        //5. 整合配置
        AutoGenerator ag = new AutoGenerator();
        ag.setGlobalConfig(config)
                .setDataSource(dsConfig)
                .setStrategy(stConfig)
                .setPackageInfo(pkConfig);
        //6. 执行
        ag.execute();

    }

}

对如下代码进行自定义修改
1Vt1YR.md.png

运行main方法,输入相关信息,生成代码
1Vt0kd.md.png

代码生成成功,目录结构如下
1Vthkj.md.png

让我们将更多精力放在写业务上而不是去重复的写增删查改

分享到:
打赏
未经允许不得转载:

作者: 冷文, 转载或复制请以 超链接形式 并注明出处 冷文博客-冷文学习者
原文地址: 《mybatisplus代码生成器》 发布于2020-4-3

评论

未显示?请点击刷新
  1. #1
    配角 游客 Lv.1

    非常有用,节省了不少时间

切换注册

登录

您也可以使用第三方帐号快捷登录

切换登录

注册

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Sitemap