MyBatis-Plus自动生成代码

自动生成代码java类

package com.hy.smart.cafeteria.common;

import com.baomidou.mybatisplus.core.toolkit.StringPool;
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.NamingStrategy;
import com.hy.smart.cafeteria.common.dao.entity.BaseEntity;

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

/**
 * MyBatis-Plus 的代码生成器,
 * 

* 通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码 * * @author liu */ public class MyBatisPlusGenerator { public static void main(String[] args) { // 代码生成器 AutoGenerator autoGenerator = new AutoGenerator(); autoGenerator.setGlobalConfig(globalConfig()); autoGenerator.setDataSource(dataSourceConfig()); autoGenerator.setPackageInfo(packageConfig()); autoGenerator.setCfg(injectionConfig()); autoGenerator.setTemplate(templateConfig()); autoGenerator.setStrategy(strategyConfig()); autoGenerator.execute(); } /** * @return 全局配置 */ static GlobalConfig globalConfig() { GlobalConfig globalConfig = new GlobalConfig(); // Entity、Mapper文件的输出路径 globalConfig.setOutputDir(projectPath() + "/src/main/java"); globalConfig.setOpen(false); globalConfig.setAuthor("xuyang"); // 是否覆盖已有文件 globalConfig.setFileOverride(true); // 实体类以Entity为后辍 globalConfig.setEntityName("%sEntity"); // 业务层接口以Service为后辍 globalConfig.setServiceName("%sService"); // 开启 BaseResultMap globalConfig.setBaseResultMap(true); // 开启 baseColumnList globalConfig.setBaseColumnList(true); return globalConfig; } /** * @return 数据源配置 */ static DataSourceConfig dataSourceConfig() { DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setUrl("jdbc:mysql://ip地址:端口/数据库名?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"); dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver"); dataSourceConfig.setUsername("账户"); dataSourceConfig.setPassword("密码"); return dataSourceConfig; } /** * @return 项目路径 */ static String projectPath() { return System.getProperty("user.dir"); } /** * Mapper接口的包路径必须与 @MapperScan(basePackages = {"..."}) 注解的属性配置一致。 * * @return 包配置 */ static PackageConfig packageConfig() { PackageConfig packageConfig = new PackageConfig(); packageConfig.setParent("包的全路径"); // Entity的包名 packageConfig.setEntity("dao.entity"); // Mapper接口的包名 packageConfig.setMapper("dao.mapper"); return packageConfig; } /** * @return 自定义配置 */ static InjectionConfig injectionConfig() { InjectionConfig cfg = new InjectionConfig() { @Override public void initMap() { // to do nothing } }; cfg.setFileOutConfigList(fileOutConfigList()); return cfg; } /** * 将mapper.xml文件输出到 /src/main/resources 目录下。 *

* mapper.xml的路径必须与 application.properties(yml) 中的 mybatis-plus.mapper-locations 配置一致。 * * @return 自定义输出文件 * @see #templateConfig() */ static List fileOutConfigList() { // 默认的模板引擎是 velocity String templatePath = "/templates/mapper.xml.vm"; // 自定义输出配置 List fileOutConfigList = new ArrayList<>(); // 自定义配置会被优先输出 fileOutConfigList.add(new FileOutConfig(templatePath) { @Override public String outputFile(TableInfo tableInfo) { // mapper.xml的输出路径 return projectPath() + "/src/main/resources/mapper/" + tableInfo.getXmlName() + StringPool.DOT_XML; } }); return fileOutConfigList; } /** * @return 配置模板 * @see #fileOutConfigList() */ static TemplateConfig templateConfig() { TemplateConfig templateConfig = new TemplateConfig(); // 不将mapper.xml文件输出到 /src/main/java 目录下 templateConfig.setXml(null); return templateConfig; } /** * @return 策略配置 */ static StrategyConfig strategyConfig() { StrategyConfig strategyConfig = new StrategyConfig(); strategyConfig.setNaming(NamingStrategy.underline_to_camel); strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel); strategyConfig.setEntityLombokModel(true); strategyConfig.setEntityBooleanColumnRemoveIsPrefix(true); strategyConfig.setEntityTableFieldAnnotationEnable(true); strategyConfig.setRestControllerStyle(true); strategyConfig.setControllerMappingHyphenStyle(true); // 表名前辍 strategyConfig.setTablePrefix("c_"); // 要生成代码的数据表 // strategyConfig.setInclude("app_user"); // 实体类的父类 strategyConfig.setSuperEntityClass(BaseEntity.class); return strategyConfig; } }

  1. 注意点
    运行MyBatisPlusGenerator之前,项目目录要改一下,
    因为项目的module可能不一致
    MyBatis-Plus自动生成代码_第1张图片

你可能感兴趣的:(扩展提升)