所需jar
<!--mybatis-plus 相关依赖--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.1</version> </dependency> <!--mybatis-plus代码生成器 相关依赖--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.3.1</version> </dependency> <!--代码生成器模板引擎 相关依赖--> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.2</version> </dependency>
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import java.util.Scanner; /** * mybatis-plus 代码生成器 */ public class CodeGenerator { /** * <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) { // 全局配置 GlobalConfig gc = new GlobalConfig(); //是否支持AR模式 gc.setActiveRecord(true) .setAuthor("zyh") //作者 .setOutputDir("D:\workspace_my\mp03\src\main\java") //生成路径 .setFileOverride(true)//是否文件覆盖,如果多次 .setServiceName("%sService") //设置生成的service接口名首字母是否为I .setIdType(IdType.AUTO) //主键策略 .setBaseResultMap(true)//开启 BaseResultMap 默认false .setEntityName("%sEntity")//实体命名方式 默认值:null 例如:%sEntity 生成 UserEntity .setMapperName("%sMapper")//mapper 命名方式 默认值:null 例如:%sDao 生成 UserDao .setXmlName("%sMapper")//Mapper xml 命名方式 默认值:null 例如:%sDao 生成 UserDao.xml .setServiceName("%sService")//service 命名方式 默认值:null 例如:%sBusiness 生成 UserBusiness .setServiceImplName("%sServiceImpl")//service impl 命名方式 默认值:null 例如:%sBusinessImpl 生成 UserBusinessImpl .setControllerName("%sController")//controller 命名方式 默认值:null 例如:%sAction 生成 UserAction .setFileOverride(false); // 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://localhost:3306/ant?useUnicode=true&useSSL=false&characterEncoding=utf8"); // dsc.setSchemaName("public"); dsc.setDriverName("com.mysql.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("密码"); //策略配置 StrategyConfig stConfig = new StrategyConfig(); stConfig.setCapitalMode(true) // 全局大写命名 // .setDbColumnUnderline(true) //表名 字段名 是否使用下滑线命名 .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略 .setInclude(scanner("表名,多个英文逗号分割").split(",")) //生成的表 .setTablePrefix(scanner("表名前缀 如tbl_table 输入tbl")); // 表前缀 // 包配置 PackageConfig pkConfig = new PackageConfig(); pkConfig.setParent("com.atguigu.mp")//父包名 .setController("controller") .setEntity("beans") .setService("service") .setMapper("mapper") .setXml("mapper"); //com.atguigu.mp 下单独建立包: scanner("模块名") 放入 // PackageConfig pc = new PackageConfig(); // pc.setModuleName(scanner("模块名")); // pc.setParent("com.baomidou.ant"); // mpg.setPackageInfo(pc); //5.整合配置 AutoGenerator ag = new AutoGenerator().setGlobalConfig(gc) .setDataSource(dsc) .setStrategy(stConfig) .setPackageInfo(pkConfig); ag.execute(); } }
官方地址:https://mp.baomidou.com/guide/generator.html