MyBatis Generator(MBG)实现插件

简介: 实现插件插件可用于修改或添加到MyBatis Generator生成的对象。插件必须实现接口org.mybatis.generator.api.Plugin。插件接口包含许多在代码生成过程的不同阶段调用的方法。

实现插件

插件可用于修改或添加到MyBatis Generator生成的对象。插件必须实现接口org.mybatis.generator.api.Plugin。插件接口包含许多在代码生成过程的不同阶段调用的方法。对于任何特定的插件,通常不需要实现整个接口。因此,大多数插件都应该扩展适配器类org.mybatis.generator.api.PluginAdapter。适配器类提供基本的插件支持,并为大多数接口方法(类似于Swing适配器类)实现无操作方法。MyBatis Generator提供了几个插件(都在包org.mybatis.generator.plugins中)。提供的插件演示了可以使用插件完成的不同类型的任务。插件的源代码随下载提供,也可以在线查看。插件生命周期

插件具有生命周期。在代码生成过程的初始化过程中创建插件,并按顺序调用进程的不同阶段。以下列表显示了插件的基本生命周期:通过默认构造函数创建的插件setContext方法调用setProperties方法调用验证方法调用。如果此方法返回false,那么插件中没有其他方法将被调用对于配置中的每个表:初始化方法调用Java客户端方法:1,2clientXXXMethodGenerated(Method,TopLevelClass,IntrospectedTable) - 这些方法被调用,因为生成了Java客户端实现类的每个方法。clientXXXMethodGenerated(Method,Interface,IntrospectedTable) - 这些方法被调用,因为生成了每个Java客户端接口的方法。clientGenerated(Interface,TopLevelClass,IntrospectedTable)方法调用模型方法:1modelFieldGenerated,modelGetterMethodGenerated,modelSetterMethod为类中的每个字段生成modelExampleClassGenerated(TopLevelClass,IntrospectedTable)modelPrimaryKeyClassGenerated(TopLevelClass,IntrospectedTable)modelBaseRecordClassGenerated(TopLevelClass,IntrospectedTable)modelRecordWithBLOBsClassGenerated(TopLevelClass,IntrospectedTable)SQL Map方法:1sqlMapXXXElementGenerated(XmlElement,IntrospectedTable) - 这些方法被调用,因为SQL映射的每个元素都被生成sqlMapDocumentGenerated(Document,IntrospectedTable)sqlMapDocument(GeneratedXmlFile,IntrospectedTable)contextGenerateAdditionalJavaFiles(IntrospectedTable)方法调用contextGenerateAdditionalXmlFiles(IntrospectedTable)方法调用contextGenerateAdditionalJavaFiles()方法调用contextGenerateAdditionalXmlFiles()方法调用提示:1 - 这些方法将被封装的代码生成器调用。如果您提供自定义代码生成器,则只有在自定义代码生成器调用它们时才会调用这些方法。2 - Java客户端方法只会被调用是一个Java客户端生成器被配置。编写插件

实现插件的最佳方式是扩展org.mybatis.generator.api.PluginAdapter类,并仅覆盖插件中需要的特定方法。插件接口中的方法可用于修改默认生成的代码,或添加其他生成的代码。使用插件可以完成的事情的例子有:将自定义注释添加到生成的方法向生成的类添加其他方法向生成的XML文件添加其他元素生成其他Java文件生成其他XML文件将始终调用contextXXX方法。其他方法由打包的代码生成器调用,只有当表的规则将导致生成特定元素时。例如,如果表没有主键,则不会调用modelPrimaryKeyClassGenerated(TopLevelClass,IntrospectedTable)方法。返回布尔值的方法可用于绕过代码生成。如果这些方法中的任何一个返回false,那么相关项将不会添加到生成的代码中。如果配置了多个插件,则从方法返回false的第一个插件将导致MyBatis Generator在所有其他插件中停止调用该方法。如果您有一个插件的想法,请随时在用户列表中提出有关问题。我们来帮忙!
原文:Implementing Plugins

相关阅读:

MyBatis Generator (MBG) 代码生成器简介

MyBatis Generator 代码生成器 快速入门指南

MyBatis Generator XML 配置文件参考

运行 MyBatis Generator 后的任务

运行MyBatis Generator

MyBatis Generator中的新功能

SSM框架——使用 MyBatis Generator 生成代码,包括:Model、Dao、Mapping

从源码构建

扩展MyBatis生成器

日志信息

提供的插件

设计哲学与致歉


目录
相关文章
|
3月前
|
SQL XML Java
8、Mybatis-Plus 分页插件、自定义分页
这篇文章介绍了Mybatis-Plus的分页功能,包括如何配置分页插件、使用Mybatis-Plus提供的Page对象进行分页查询,以及如何在XML中自定义分页SQL。文章通过具体的代码示例和测试结果,展示了分页插件的使用和自定义分页的方法。
8、Mybatis-Plus 分页插件、自定义分页
|
7天前
|
SQL Java 数据库连接
深入 MyBatis-Plus 插件:解锁高级数据库功能
Mybatis-Plus 提供了丰富的插件机制,这些插件可以帮助开发者更方便地扩展 Mybatis 的功能,提升开发效率、优化性能和实现一些常用的功能。
74 26
深入 MyBatis-Plus 插件:解锁高级数据库功能
|
7天前
|
SQL 缓存 Java
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
本文详细介绍了MyBatis的各种常见用法MyBatis多级缓存、逆向工程、分页插件 包括获取参数值和结果的各种情况、自定义映射resultMap、动态SQL
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
|
30天前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
91 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
|
2月前
|
SQL Java 数据库连接
解决mybatis-plus 拦截器不生效--分页插件不生效
本文介绍了在使用 Mybatis-Plus 进行分页查询时遇到的问题及解决方法。依赖包包括 `mybatis-plus-boot-starter`、`mybatis-plus-extension` 等,并给出了正确的分页配置和代码示例。当分页功能失效时,需将 Mybatis-Plus 版本改为 3.5.5 并正确配置拦截器。
525 6
解决mybatis-plus 拦截器不生效--分页插件不生效
|
2月前
|
SQL XML Java
springboot整合mybatis-plus及mybatis-plus分页插件的使用
这篇文章介绍了如何在Spring Boot项目中整合MyBatis-Plus及其分页插件,包括依赖引入、配置文件编写、SQL表创建、Mapper层、Service层、Controller层的创建,以及分页插件的使用和数据展示HTML页面的编写。
springboot整合mybatis-plus及mybatis-plus分页插件的使用
|
3月前
|
Java 数据库 Spring
MyBatisPlus分页插件在SpringBoot中的使用
这篇文章介绍了如何在Spring Boot项目中配置和使用MyBatis-Plus的分页插件,包括创建配置类以注册分页拦截器,编写测试类来演示如何进行分页查询,并展示了测试结果和数据库表结构。
MyBatisPlus分页插件在SpringBoot中的使用
|
4月前
|
SQL 监控 Java
IDEA插件-Mybatis Log Free日志替换
MyBatis Log Free 是一个免费的用于在 IntelliJ IDEA 中显示 MyBatis 日志的插件。它可以帮助您更方便地查看和分析 MyBatis 的 SQL 执行情况,以及定位潜在的性能问题,提高开发效率。
371 0
IDEA插件-Mybatis Log Free日志替换
|
30天前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
52 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
1月前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
266 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个