适用版本:mybatis-plus-generator 3.5.1 及其以上版本,由于生成器代码不需要提交维护,代码放在test包下面即可
1、引入依赖
方式一
2、在test类中执行以下代码快速生成
FastAutoGenerator.create("url", "username", "password") //写需要生成的数据库的信息 .globalConfig(builder -> { builder.author("baomidou") // 设置作者 .enableSwagger() // 开启 swagger 模式 .fileOverride() // 覆盖已生成文件 .outputDir("D://"); // 指定输出目录 }) .packageConfig(builder -> { builder.parent("com.baomidou.mybatisplus") // 设置父包名,就是生成后的类的包名字 .moduleName("system") // 设置父包模块名 .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D://")); // 设置mapperXml生成路径 }) .strategyConfig(builder -> { builder.addInclude("t_simple") // 设置需要生成的表名 .addTablePrefix("t_", "c_"); // 设置过滤表前缀 ,这些不需要这是注掉 }) .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板 .execute();
方式二、设置好对应信息在生成
public class CodeGenerator { @Test public void genCode() { // 1、创建代码生成器 AutoGenerator mpg = new AutoGenerator(); // 2、全局配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty("user.dir"); //获取该项目的全路径 gc.setOutputDir(projectPath + "/src/main/java");//设置生成后存放的路径 gc.setAuthor("Helen");//设置作者 gc.setOpen(false); //生成后是否打开资源管理器 gc.setServiceName("%sService");//去掉Service接口的首字母I gc.setIdType(IdType.AUTO); //主键策略 ,在生成的对象所有的id属性都会加上 @TableId(value = "id", type = IdType.AUTO)注解,主键自增 gc.setSwagger2(true);//开启Swagger2模式,自动生成接口文档,使用必须引入依赖下面的依赖,生成时每个属性都会有 @ApiModelProperty(value = "编号")这样的注解 会把创建表时的字段注释拿过来,这样可以清楚知道每个字段对应的意思 mpg.setGlobalConfig(gc); // 3、数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://localhost:3306/数据库库名?serverTimezone=GMT%2B8&characterEncoding=utf-8");//后面两个参数分别是设置时区和字符集 dsc.setDriverName("com.mysql.cj.jdbc.Driver");//设置jdbc驱动,mysql8以下是com.mysql.jdbc.Drive,mysql8以上是com.mysql.cj.jdbc.Driver dsc.setUsername("root");//数据库username dsc.setPassword("123456");//数据库password dsc.setDbType(DbType.MYSQL); mpg.setDataSource(dsc); // 4、包配置 PackageConfig pc = new PackageConfig(); pc.setParent("com.srb.core"); pc.setEntity("pojo.entity"); //此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。 mpg.setPackageInfo(pc); // 5、策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略,由下划线命名改为驼峰命名 strategy.setColumnNaming(NamingStrategy.underline_to_camel); //列名下划线转驼峰命名 strategy.setEntityLombokModel(true); //给所有的实体类加lombok注解,不自动生成get和set,但加上了@Data注解,会在编译的时候自动生成get和set strategy.setLogicDeleteFieldName("is_deleted"); //逻辑删除字段名,给逻辑删除字段加逻辑注解 @logicDelete strategy.setEntityBooleanColumnRemoveIsPrefix(true); //去掉is_前缀,阿里的开发文档规定属性名不要以is开头 strategy.setRestControllerStyle(true); //restful api风格,返回json的 mpg.setStrategy(strategy); //6执行 mpg.execute();} }
使用swagger需要引入的依赖