Mybatis-Plus代码生成器
【摘要】 Mybatis-Plus代码生成器是Mybatis-Plus框架提供的一项功能强大的工具,旨在简化数据库访问层的开发。
引言
在现代软件开发中,自动生成代码是一项重要的工程实践,能够显著提高开发效率、降低出错概率。Mybatis-Plus代码生成器作为Mybatis-Plus框架的一部分,为开发者提供了强大的自动化代码生成功能。以帮助开发者充分利用这一神兵利器,快速构建高质量的数据库访问层。
Mybatis-Plus代码生成器简介
Mybatis-Plus代码生成器是基于Velocity模板引擎的代码生成工具,旨在简化Mybatis-Plus项目的开发流程。通过配置相关参数,开发者可以轻松生成实体类、Mapper接口以及XML映射文件,省去了大量的模板代码编写工作。
代码生成器的基本原理
Mybatis-Plus代码生成器的基本原理是通过读取用户配置,使用Velocity模板引擎生成Java类和XML文件。用户在配置中指定数据源、生成路径、包路径等信息,代码生成器根据这些配置生成对应的文件。
注意: MyBatis-Plus 支持Velocity(默认)、Freemarker、Beetl,用户可以选择自己熟悉的模板引擎,如果都不满足您的要求,可以采用自定义模板引擎。
使用Mybatis-Plus代码生成器的步骤
- 引入Mybatis-Plus依赖: 在项目中引入Mybatis-Plus的相关依赖,确保可以使用Mybatis-Plus的代码生成功能。
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--代码生成-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
- 配置代码生成器: 创建一个代码生成器类,并配置相关信息。
package com.example;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
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.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
AutoGenerator autoGenerator = new AutoGenerator();
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL);
dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("root");
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/mybatisplus?useUnicode=true&characterEncoding=UTF-8");
autoGenerator.setDataSource(dataSourceConfig);
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOpen(false);
globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");
globalConfig.setAuthor("奇遇少年");
globalConfig.setServiceName("%sService");
autoGenerator.setGlobalConfig(globalConfig);
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.yu");
packageConfig.setEntity("entity");
packageConfig.setMapper("mapper");
packageConfig.setController("controller");
packageConfig.setService("service");
packageConfig.setServiceImpl("service.impl");
autoGenerator.setPackageInfo(packageConfig);
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setEntityLombokModel(true);
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
List<TableFill> list = new ArrayList<>();
TableFill tableFill1 = new TableFill("create_time", FieldFill.INSERT);
TableFill tableFill2 = new TableFill("update_time",FieldFill.INSERT_UPDATE);
list.add(tableFill1);
list.add(tableFill2);
strategyConfig.setTableFillList(list);
autoGenerator.setStrategy(strategyConfig);
autoGenerator.execute();
}
}
- 运行代码生成器: 在项目中运行代码生成器类,即可生成相应的Java类和XML文件。
代码生成器的高级特性
- 模板定制: Mybatis-Plus代码生成器提供了默认的模板,同时也支持用户自定义模板,使得生成的代码符合项目规范和风格。
- 策略配置: 用户可以通过配置生成策略,包括表命名规范、字段命名规范、生成的文件类型等。
- 注释生成: 代码生成器支持自动生成注释,包括作者、日期、表字段注释等,提高代码的可读性和可维护性。
最佳实践与注意事项
- 适时更新代码: 随着业务需求的变化,及时更新生成的代码,保持代码与数据库结构的同步。
- 定期清理冗余代码: 生成的代码可能包含一些不再使用的部分,定期进行清理,保持代码的简洁性。
- 合理配置生成策略: 根据项目的实际需求,合理配置生成策略,避免生成不必要的文件。
结语
Mybatis-Plus代码生成器是提高开发效率的利器,通过合理配置和使用代码生成器,开发者可以极大地减少重复性工作,快速生成符合规范的代码,提高开发效率。在实际项目中,善用Mybatis-Plus代码生成器将为团队带来事半功倍的效果,助力构建高质量、高效率的数据库访问层。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)