💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 提供的插件 随着MyBatis生成器(MBG)的使用量的增加,我们发现越来越有用以通过插件增加功能,而不是添加到基本代码发生器的复杂性。插件是一个模块化的,易于理解的机制,继承MBG。有关编写一个插件的更多信息,请参阅[实现插件](pluggingIn.html) 。有关配置插件的信息,请参阅[&lt;plugin&gt;](../configreference/plugin.html) 所提供的插件都在`org.mybatis.generator.plugins` 包。所提供的插件展示不同类型的可以完成与MBG插件任务。插件的源代码可以和MBG一起下载,也可以在线浏览[这里](https://github.com/mybatis/generator/tree/master/core/mybatis-generator-core/src/main/java/org/mybatis/generator/plugins) 。 ## org.mybatis.generator.plugins.CachePlugin 这个插件在生成的SQL映射中增加了一个&lt;cache&gt;元素。这个插件仅用于MyBatis3目标运行时环境。 这个插件接受下列属性。都是可选的,并且,如果指定,则值将被直接传递到相应的属性生成的&lt;cache&gt;元素。 * cache_eviction * cache_flushInterval * cache_readOnly * cache_size * cache_type 所有属性都可以通过指定&lt;table&gt;元素的属性来覆盖。 ## org.mybatis.generator.plugins.CaseInsensitiveLikePlugin 该插件给Example类添加方法(实际上是给Criteria内部类)来支持不区分大小写的LIKE搜索。这表明通过插件给Example类添加功能,而不是扩展这个类。 ## org.mybatis.generator.plugins.EqualsHashCodePlugin 这个插件给由MBG生成的Java模型对象增加了`equals`和`hashCode`方法。 通过这个类生成的`equals`方法,在大多数情况下是正确的,但如果您已经指定了rootClass可能是不正确的 - 因为我们的equals方法只检查它知道的字段。 ## org.mybatis.generator.plugins.MapperConfigPlugin 这个插件生成包含对MBG所生成的XML映射文件的框架MapperConfig.xml文件。此文件可用于配置的MyBatis 3.X环境。 这个插件接受三个属性: * `fileName` ??(可选的)生成的文件的名称。如果没有指定,默认为“MapperConfig.xml”。 * `targetPackage`(必须的)生成文件放置的包名。指定像“com.mycompany.sql”这样的值。 * `targetProject`(必须的)该文件应放置在的项目名称。 注: `targetPackage`和`targetProject`遵循sqlMapGenerator配置元素上`targetPackage`和`targetProject`的相同的规则。 ## org.mybatis.generator.plugins.RenameExampleClassPlugin 这个插件通过重命名由MBG生成的Example类的方法演示`initialized`方法的用法。 这个插件接受两个属性: * `searchString`(必须的),用于搜索默认生成的Example的名称的正则表达式。 * `replaceString`(必须的)插在匹配`searchString`位置的字符串。 例如,从xxxExample重命名生成的例子类xxxCriteria,指定`实例美元searchString`和`标准replaceString` ## org.mybatis.generator.plugins.RowBoundsPlugin 这个插件将添加一个新版本`selectByExample`方法接受`RowBounds`参数。这支持的MyBatis RowBounds函数,其中一个返回的结果列表可以在长度受到限制,并且开始位置可以被指定。这可以是在分页应用中是有用的。 这个插件仅适用于MyBatis3目标运行时环境。 ## org.mybatis.generator.plugins.SerializablePlugin 这个插件给由MBG生成的Javas添加了`java.io.Serializable`标记接口。这个插件给实体类增加了`serialVersionUID`字段。 重要提示:这是一个简单的实现java.io.Serializable并且不会尝试做任何版本的类。 这个插件接受两个属性: * `addGWTInterface`(可选的)True/False.。如果为true,插件将给实体对象增加谷歌Web工具包(GWT)的 `IsSerializable`接口。默认值是false。 * `suppressJavaInterface`(必须的)True/False。如果为true,插件将不添加`java.io.Serializable`接口。这是对于其中对象应该是可序列化的GWT,但不是严格意义上的Java的场景。默认值是false。 ## org.mybatis.generator.plugins.SqlMapConfigPlugin 这个插件生成包含对MBG所产生的SqlMap.xml文件的SqlMapConfig.xml框架文件。此文件可用于配置的iBATIS 2.x的环境。 这个插件接受三个属性: * `fileName` ??(可选的)所产生的文件的名称。如果没有指定,默认值是“SqlMapConfig.xml”。 * `targetPackage`(必须的)放置该文件的包名。指定像“com.mycompany.sql”这样的值。 * `targetProject(`必须的)放置该文件的项目的名称。 注: `targetPackage`和`targetProject`遵循和sqlMapGenerator配置元素上的`targetPackage`和`targetProject`相同的规则。 ## org.mybatis.generator.plugins.ToStringPlugin 该插件给实体类添加`toString()`方法。 ## org.mybatis.generator.plugins.VirtualPrimaryKeyPlugin 这个插件可用于指定作为主键的列,即使它们没有在数据库中被定义为主键列。这是在数据库表没有定义主的情况下非常有用。通常情况下,如果没有主键,MBG将产生一组非常有限的方法。这个插件可以用来启用生成的完整的MBG方法。 要使用该插件,添加属性“virtualKeyColumns”到您的&lt;table&gt;配置,设置值为应被视做主键的用逗号或空格分隔的列名列表。列名必须和数据库(通常全部大写)返回的列名完全匹配。例如: ``` <table tableName="foo"> <property name="virtualKeyColumns" value="ID1, ID2" /> </table> ```