使用Mybatis Plus深度解析CodeGenerator代码生成器

版权申诉
3 下载量 188 浏览量 更新于2024-09-11 收藏 137KB PDF 举报
"这篇文章主要讲解如何使用Mybatis Plus的代码生成器CodeGenerator,通过实例代码进行详尽的解析,适用于学习或工作的辅助工具。" 在Java开发中,Mybatis Plus是一个强大的Mybatis扩展,它提供了丰富的 CRUD 操作以及简化了许多数据库操作。而CodeGenerator是Mybatis Plus的一部分,它能自动生成基于数据库表的Java实体类、Mapper接口、Mapper XML 文件以及Service和Controller等代码,极大地提高了开发效率。以下将详细介绍如何基于Mybatis Plus实现代码生成器CodeGenerator。 首先,要使用CodeGenerator,需要在项目的pom.xml文件中添加必要的依赖。这些依赖包括Mybatis Plus的生成器模块(mybatis-plus-generator)、Velocity引擎、FreeMarker模板引擎和Beetl模板引擎。以下是相关的Maven依赖坐标: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.2.0</version> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.1</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.29</version> </dependency> <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetl</artifactId> <version>3.0.11.RELEASE</version> </dependency> ``` 接下来,你需要创建一个Java程序来启动代码生成器。以下是一个简单的例子,展示了如何配置并启动CodeGenerator: ```java import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; 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.TemplateConfig; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; public class CodeGeneratorMain { public static void main(String[] args) { // 创建AutoGenerator对象 AutoGenerator mpg = new AutoGenerator(); // 配置全局属性 GlobalConfig gc = new GlobalConfig(); gc.setOutputDir("src/main/java"); gc.setAuthor("YourName"); gc.setOpen(false); // 是否打开输出目录 mpg.setGlobalConfig(gc); // 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8"); dsc.setDriverName("com.mysql.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("password"); mpg.setDataSource(dsc); // 包配置 PackageConfig pc = new PackageConfig(); pc.setParent("com.example"); // 设置父包名 pc.setEntity("entity"); // 实体类路径 pc.setMapper("mapper"); // Mapper接口路径 pc.setXml("mapper"); // Mapper XML文件路径 pc.setService("service"); // Service接口路径 pc.setServiceImpl("service.impl"); // Service实现类路径 mpg.setPackageInfo(pc); // 策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel); // 表名转为驼峰命名 strategy.setTablePrefix("t_"); // 设置表前缀 strategy.setInclude(new String[]{"user"}); // 需要生成的表名,多个用逗号分隔 mpg.setStrategy(strategy); // 模板配置 TemplateConfig tc = new TemplateConfig(); // 关闭自定义模板 tc.setEntity(null); tc.setMapper(null); tc.setService(null); tc.setServiceImpl(null); tc.setController(null); mpg.setTemplate(tc); // 执行生成 mpg.execute(); } } ``` 在这个例子中,我们配置了全局设置(如作者信息和输出目录)、数据源(数据库连接信息)、包配置(生成的代码所在包路径)以及策略配置(命名规则和要生成的表)。执行`mpg.execute();`后,CodeGenerator会根据配置自动生成相应的代码。 在实际开发中,你可以根据自己的需求调整配置,比如选择不同的模板引擎、改变命名策略或者自定义模板,以满足特定的代码生成需求。同时,也可以将这些配置信息保存到配置文件中,方便重复使用和管理。 总结来说,Mybatis Plus的CodeGenerator是提高开发效率的有效工具,通过它可以快速地生成基于数据库表的Java代码,减少了手动编写这些基础代码的工作量,使得开发者可以更加专注于业务逻辑的实现。通过理解和熟练使用CodeGenerator,能够使开发过程更加高效和便捷。