MyBatisPlus-快速开发
MyBatisPlus-快速开发
代码生成器
AutoGenerator是MyBatisPlus的代码生成器,可以快速生成Entity、Mapper、MapperXML、Service、Controller等各个模块的代码,极大的提升开发效率。
- 模板:MyBatisPlus提供,支持Velocity(默认)、Freemarker、Beetl,用户可以自己选择熟悉的模板引擎。
- 数据库相关配置:读取数据库获取信息
- 开发者自定义配置:手工配置
代码生成器的使用
-
导入坐标
<!--代码生成器--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.1</version> </dependency> <!--velocity模板引擎--> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.3</version> </dependency>
-
核心代码
public class Generator { public static void main(String[] args) { AutoGenerator autoGenerator = new AutoGenerator(); DataSourceConfig dataSource = new DataSourceConfig(); // 数据源的配置 dataSource.setDriverName("com.mysql.cj.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTC"); dataSource.setUsername("root"); dataSource.setPassword("1234"); autoGenerator.setDataSource(dataSource); autoGenerator.execute(); // 设置全局配置 GlobalConfig globalConfig = new GlobalConfig(); globalConfig.setOutputDir(System.getProperty("user.dir") + "/mybatisplus_04_generator/src/main/java"); // 设置代码的生成路径 globalConfig.setOpen(false); // 设置生成完毕后是否打开代码所在的目录 globalConfig.setAuthor("Charley"); // 设置作者 globalConfig.setFileOverride(true); // 设置是否覆盖原始生成的文件 globalConfig.setMapperName("%sDao"); // 设置数据层接口名,%s为占位符,指代模块名称 globalConfig.setIdType(IdType.ASSIGN_ID); // 设置id生成策略 autoGenerator.setGlobalConfig(globalConfig); // 设置包名相关配置 PackageConfig packageInfo = new PackageConfig(); packageInfo.setParent("com.charley"); // 设置生成的包名,与代码所在位置不冲突,二者叠加组成完整路径 packageInfo.setEntity("domain"); // 设置实体类包名 packageInfo.setMapper("dao"); // 设置数据层包名 autoGenerator.setPackageInfo(packageInfo); // 策略设置 StrategyConfig strategyConfig = new StrategyConfig(); strategyConfig.setInclude("tbl_user"); //设置当前参与生成的表名,参数为可变参数 strategyConfig.setTablePrefix("tbl_"); // 设置当前数据库表的前缀名称,模块名 = 数据库表名 - 前缀名 例如: User = tbl_user - tbl_ strategyConfig.setRestControllerStyle(true); // 设置是否启用Rest风格 strategyConfig.setVersionFieldName("version"); // 设置乐观锁字段名 strategyConfig.setLogicDeleteFieldName("deleted"); // 设置逻辑删除字段名 strategyConfig.setEntityLombokModel(true); // 设置是否启用lombok autoGenerator.setStrategy(strategyConfig); // 2. 执行生成操作 autoGenerator.execute(); } }