随着MyBatis生成器(MBG)的使用量的增加,我们发现越来越有用以通过插件增加功能,而不是添加到基本代码发生器的复杂性。插件是一个模块化的,易于理解的机制,继承MBG。有关编写一个插件的更多信息,请参阅实现插件 。有关配置插件的信息,请参阅<plugin>
所提供的插件都在org.mybatis.generator.plugins 包。所提供的插件展示不同类型的可以完成与MBG插件任务。插件的源代码可以和MBG一起下载,也可以在线浏览这里 。
这个插件在生成的SQL映射中增加了一个<cache>元素。这个插件仅用于MyBatis3目标运行时环境。
这个插件接受下列属性。都是可选的,并且,如果指定,则值将被直接传递到相应的属性生成的<cache>元素。
所有属性都可以通过指定<table>元素的属性来覆盖。
该插件给Example类添加方法(实际上是给Criteria内部类)来支持不区分大小写的LIKE搜索。这表明通过插件给Example类添加功能,而不是扩展这个类。
这个插件给由MBG生成的Java模型对象增加了equals和hashCode方法。
通过这个类生成的equals方法,在大多数情况下是正确的,但如果您已经指定了rootClass可能是不正确的 - 因为我们的equals方法只检查它知道的字段。
这个插件生成包含对MBG所生成的XML映射文件的框架MapperConfig.xml文件。此文件可用于配置的MyBatis 3.X环境。
这个插件接受三个属性:
注: targetPackage和targetProject遵循sqlMapGenerator配置元素上targetPackage和targetProject的相同的规则。
这个插件通过重命名由MBG生成的Example类的方法演示initialized方法的用法。
这个插件接受两个属性:
例如,从xxxExample重命名生成的例子类xxxCriteria,指定实例美元searchString和标准replaceString
这个插件将添加一个新版本selectByExample方法接受RowBounds参数。这支持的MyBatis RowBounds函数,其中一个返回的结果列表可以在长度受到限制,并且开始位置可以被指定。这可以是在分页应用中是有用的。
这个插件仅适用于MyBatis3目标运行时环境。
这个插件给由MBG生成的Javas添加了java.io.Serializable标记接口。这个插件给实体类增加了serialVersionUID字段。
重要提示:这是一个简单的实现java.io.Serializable并且不会尝试做任何版本的类。
这个插件接受两个属性:
这个插件生成包含对MBG所产生的SqlMap.xml文件的SqlMapConfig.xml框架文件。此文件可用于配置的iBATIS 2.x的环境。
这个插件接受三个属性:
注: targetPackage和targetProject遵循和sqlMapGenerator配置元素上的targetPackage和targetProject相同的规则。
这个插件可用于指定作为主键的列,即使它们没有在数据库中被定义为主键列。这是在数据库表没有定义主的情况下非常有用。通常情况下,如果没有主键,MBG将产生一组非常有限的方法。这个插件可以用来启用生成的完整的MBG方法。
要使用该插件,添加属性“virtualKeyColumns”到您的<table>配置,设置值为应被视做主键的用逗号或空格分隔的列名列表。列名必须和数据库(通常全部大写)返回的列名完全匹配。例如:
<table tableName="foo"> <property name="virtualKeyColumns" value="ID1, ID2" /> </table>