前言

相较于之前的springmvc框架,使用springboot开发减少了大量的配置文件的工作,能够大大提高了开发的效率。使用springboot开发如果有新的接口或者方法基本步骤大致如下:

1、新增数据对象对应的entity;

2、新增controller;

3、新增dao;

4、新增service和对应的impl类。

每次都这样重复地去新增这些东西,工作难度不大,但是却很枯燥,也很浪费时间。有这时间摸摸鱼不香吗?

今天就推荐两款能够大大提升工作效率(摸鱼)的神器:代码自动生产器,有些代码真的不用手写!

一、EasyCode

第一款推荐的是idea自带的插件---->Easy Code。EasyCode 是基于 IntelliJ IDEA 开发的代码生成插件,支持自定义任意模板(Java,html,js,xml)。只要是与数据库相关的代码都可以通过自定义模板来生成。支持数据库类型与 java 类型映射关系配置。支持同时生成生成多张表的代码。每张表有独立的配置信息。完全的个性化定义,规则由你设置。通常用于生成 Entity、Dao、Service、Controller。如果你动手能力强还可以用于生成 HTML、JS、PHP 等代码。理论上来说只要是与数据有关的代码都是可以生成的。

Easy Code是基于 Database Tool 开发,所有 Database Tool 支持的数据库都是支持的。常见的数据库基本都是支持的。

安装步骤如下:到iead的plugins插件市场,搜索下载easy code即可

java mp代码生成器 java代码自动生成开发工具_自定义

安装完成后可以通过以下的配置进行自定义配置,一般使用默认的即可:

java mp代码生成器 java代码自动生成开发工具_java mp代码生成器_02

然后如果需要生成具体的代码,则需要配合使用Database Tool,这里支持很多的数据库类型,这里使用的mysql:

java mp代码生成器 java代码自动生成开发工具_java_03

java mp代码生成器 java代码自动生成开发工具_intellij-idea_04

java mp代码生成器 java代码自动生成开发工具_springboot_05

上述配置好了之后选择需要生成相关代码的表,选择easycode–>generate code即可

java mp代码生成器 java代码自动生成开发工具_java mp代码生成器_06

java mp代码生成器 java代码自动生成开发工具_java mp代码生成器_07

这样所有的需要的代码就生成成功了:

java mp代码生成器 java代码自动生成开发工具_intellij-idea_08

java mp代码生成器 java代码自动生成开发工具_intellij-idea_09

以上就是如何使用idea的easycode代码生成插件的使用!

二、CodeGenerator

这是一个mybatis-plus的代码生成器,直接复制下面的代码,放到项目中的一个独立的文件夹下即可,每次根据具体的需要,修改一些相关的参数值即可,具体代码以及相关的注释解释如下:

package com.jiangxia.demo;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
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.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.Test;

/**
 * @author:jiangxia
 * @since 2022/04/25
 */
public class CodeGenerator {
    @Test
    public void run() {
        // 1、创建代码生成器
        AutoGenerator mpg = new AutoGenerator();
        // 2、全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("testjava");
        gc.setOpen(false); //生成后是否打开资源管理器
        gc.setFileOverride(false); //重新生成时文件是否覆盖
        gc.setServiceName("%sService");  //去掉Service接口的首字母I
        gc.setIdType(IdType.ID_WORKER); //主键策略
        gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
        gc.setSwagger2(true);//开启Swagger2模式
        mpg.setGlobalConfig(gc);
        // 3、数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/test");
        dsc.setDriverName("om.mysql.cj.jdbc.Driver");
        dsc.setUsername("jiang");
        dsc.setPassword("jiang");
        dsc.setDbType(DbType.MYSQL);
        mpg.setDataSource(dsc);
        // 4、包配置
        PackageConfig pc = new PackageConfig();
        pc.setModuleName("codedemo"); //模块名
        pc.setParent("com.jiangxia.demo");//哪个包下
        pc.setController("controller");//comtroller
        pc.setEntity("entity");//entity
        pc.setService("service");//service
        pc.setMapper("mapper");//mapper
        mpg.setPackageInfo(pc);
        // 5、策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setInclude("user");
        strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
        strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀

        strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
        strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作

        strategy.setRestControllerStyle(true); //restful api风格控制器
        strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符
        mpg.setStrategy(strategy);
        // 6、执行
        mpg.execute();
    }
}

上述代码的设置每次只需要修改具体的数据库以及对应表即可。执行上述代码后即可生成对应的controller、entity等代码,减少了大量的创建工作。

总结

以上就是两种代码自动生成工具,可以根据自己的实际情况和需要选择使用,这样能够大大减少每次不必要的工作量,提高工作效率,早点完成工作,早点下班!