版本1.3.5
请参阅GitHub页面的里程碑1.3.5,了解本版本中发生了什么变化。里程碑1.3.5版本1.3.4
在这个版本中,我们已经弃用了eclipse插件中的弹出菜单项,用于运行MyBatis生成器,它将在下一个版本中被删除。替换是一个新的MyBatis生成器启动器,具有比弹出菜单项更多的功能。请参阅GitHub页面里程碑1.3.4,以了解本版本中发生了什么变化。里程碑1.3.4版本1.3.3
通告MyBatis Generator现在需要1.6或更高的JRE修复/增强有关这个版本中发生了什么变化的详细信息,请参考GitHub页面的里程碑1.3.3。版本1.3.2
修复的 bug将注释添加到模型类中生成的构造函数, 以便可以合并它们。
支持带有大写元素的包名称。
固定问题 #288-不正确标注的 countByExample 方法
修正了 Maven 插件, 因此 <properties> 文件可以在项目类路径中找到。
固定问题 #359-使 JdbcTypeInformation 公开
固定上下文. toXmlElement () 方法以包含缺少的属性
固定 CaseInsensitiveLikePlugin 添加新方法 GeneratedCriteria 内部类
问题 #412-更新文档以反映 MyBatis3 有关生成密钥的差异。
问题 #440-为具有类型处理程序的基元生成不正确的代码
问题 #439-在适当的时候使用自动装箱作为基元
问题 #438-在数据库序列中保留主键属性
问题 #507-RowBounds 插件生成重复语句
问题 #593-CaseInsensitiveLikePlugin 跳过 Jdbc4 国家字符类型
增强
添加了一个新的目标运行时-MyBatis3Simple-可用于在表上生成非常简单的 CRUD 操作。此运行时比正常的 MyBatis3 运行时生成更简单的 MyBatis 代码。生成的代码还具有正常 MyBatis3 运行时的较低功能。如果不定期使用 "按示例" 方法, 则 MyBatis3Siple 运行时生成的代码可能更适合您的项目。
添加了一个新的插件-VirtualPrimaryKey 插件-可用于指定充当主键的列, 即使它们未定义为数据库中的主键。
问题 #328-添加了一个新的插件-RowBounds 插件-这将产生一个附加版本的 selectByExample, 支持 MyBatis RowBounds 功能。
为提供的插件创建了一个新的参考页: 提供的插件
只允许生成 Java 模型的问题 #368。如果在上下文中未指定 SQLMapGenerator 或 JavaClientGenerator, 则只生成 Java 模型。此外, 如果属性 "modelOnly" 在 <table> 元素上设置为 "true", 则将只生成模型对象和可能的 XML 结果映射。
问题 #374-允许为在文件系统上读写 Java 文件指定文件编码。<context> 元素上有一个新的属性 "javaFileEncoding", 可用于指定 Java 文件编码。(XML 文件总是按规范的 UTF-8 读/写)。
添加了为生成的 Java 和 XML 文件指定自定义代码格式化程序的功能。有关更多信息, 请参见 <context> 元素上的新属性。
增加了对 varargs org.mybatis.generator.api.dom.java.Parameter 类的支持
增加了对同步和本机 org.mybatis.generator.api.dom.java.Method 类的支持
增加了对 org.mybatis.generator.api.dom.java.Field 类的瞬态和挥发性的支持
问题 #375-添加了一个新的插件-ToStringPlugin-将在模型类中生成 toString () 方法。感谢田中岩!
向可序列化插件发出 #233 的 GWT 功能
问题 #564-支持子在表级别
问题 #590-新的插件 <cache>。谢谢你, 杰森. 贝内特!
版本1.3.1
修复的 bug始终指定 <selectKey> 在 <insert> 中 MyBatis3 位置的顺序不相关。
XMLMAPPER 客户端忽略了 "rootInterface"
当将小写类名指定为域对象名称时修复 bug
固定问题 #174-selectByExampleWithBlobs 中 order 子句格式不正确
增强
添加了一个新的 MyBatis3 生成器, 它仅基于没有生成的 XML 的注释生成代码。此新生成器的配置设置如下:
<context> 元素的 targetRuntime 属性是 MyBatis3
<javaClientGenerator> 元素的类型属性为 ANNOTATEDMAPPER
添加了一个新的 MyBatis3 生成器, 它根据注释和生成的 XML 的混合生成代码。此新生成器的配置设置如下:
<context> 元素的 targetRuntime 属性是 MyBatis3
<javaClientGenerator> 元素的类型属性为 MIXEDMAPPER
添加对 JDBC 类型的支持 NCHAR、NCLOB、NVARCHAR 以匹配 MyBatis3。
增加了对 MyBatis3 "useGeneratedKeys" 的支持。有关详细信息, 请参见 <generatedKey>。
在 MyBatis3 中添加了对不可变对象和基于构造函数的结果映射的支持。有关详细信息, 请参见 <table> 和/或 <javaModelGenerator>。
增加了对 Java DOM 中初始化块的支持
问题 #214-添加了在生成的代码中抑制所有注释的功能。有关详细信息, 请参见 <commentGenerator>。
版本1.3.0
移动到mybatis.org,重命名为MyBatis GeneratorMyBatis生成器将继续支持Ibator的XML配置文件。但是,任何新功能只能在MyBatis格式化的配置文件中实现。将Ibator格式的配置文件迁移到MyBatis Generator的新DTD需要进行一些最小的更改。MyBatis 3的配置设置如下:<context>元素的targetRuntime属性必须更改为MyBatis3必须将<javaClientGenerator>元素的type属性更改为XMLMAPPER删除了在<context>元素中的suppressTypeWarnings属性的支持。由于不同编译器中的@SuppressWarnings(“unchecked”)和@SuppressWarnings(“rawtypes”)之间的混淆,这种令人困惑的财产变得无法管理。这仅用于使用Ibatis2Java2 targetRuntime生成的代码将使用JSE 5.0编译器进行编译的角落。版本1.2.2(永不发布)
通告org.apache.ibatis.ibator.api.CommentGenerator接口已更改。必须更改实现此接口的类。通过这种改变,实现类可以访问更多的数据元素来生成注释。此外,此更改使得注释生成器接口与其他公共Ibator接口更加一致。更改细节如下:接受参数FullyQualifiedTable的方法现在接受参数IntrospectedTable。FullyQualifiedTable实例可通过IntrospectedTable.getFullyQualifiedTable()方法获得。接受String参数columnName的方法现在接受参数IntrospectedColumn。列名可通过IntrospectedColumn.getActualColumnName()方法获得。重要注意事项:对于Ibator提供的类DefaultCommentGenerator,任何实现子类都不需要立即更改。旧的方法已被弃用,并将在下一个版本的Ibator中删除 - 所以子类应尽快重新加工。SQL Map生成器已更改,因为它不再为每个生成的XML标识符添加字符串“ibatorgenerated_”。如果您在其他代码中依赖这些生成的名称,可以强制Ibator在<SqlMapGenerator>配置中使用propertyLegacyXMLIds的属性预先添加字符串。Ibator现在用Maven构建,并包含一个Maven插件。修复的 bug
当没有 DAOs 生成时。
IBATIS-579-不允许包含空格的列名称在生成的 XML 中跨行进行分隔。
固定的北角和不正确的计算在生成的 equals 方法 (从 EqualsHashCodePlugin) 当某些字段是 null-感谢本杰明 Klatt 找到这个 bug。
IBATIS-601-不正确的 <generatedKey> 验证
IBATIS-609-对 Java 泛型类型的错误解析
固定拼写错误 LONCVARCHAR 到 LONGVARCHAR (感谢阿拉德)
固定 IBATIS-731-更改主键变量的名称以避免冲突
固定 IBATIS-699-覆盖 unmergeable 的 XML 文件 (如果启用)
固定的问题, 如果有一个序列生成主键 (仅问题与 iBATIS3), insertSelective 失败
增强
IBATIS-569 修改了 IbatorRules 实现, 使插件更容易提供 IbatorRules 的自定义实现。有关更多信息, 请参见新类 org.apache.ibatis.ibator.internal.rules.IbatorRulesDelegate 的 Javadoc。
如果在表中用作列名, 则 IBATIS-571 添加了对 SQL 关键字的自动分隔的支持。有关详细信息, 请参阅 <ibatorContext> 页面。
IBATIS-577-为列列表定义 SQL 片段, 以提高生成的代码的可重用性。多亏了田中岩大道!的想法和初始补丁。
添加了新的详细命令行参数。有关详细信息, 请参阅正在运行的 Ibator 页。
添加了在调试中使用的日志记录语句。有关详细信息, 请参阅日志记录页。
添加了新的示例插件, 以演示添加不区分大小写 (如支持生成的示例类)。有关详细信息, 请参阅 <ibatorPlugin> 页面。
已将 "delimitAllColumns" 属性添加到表配置中。这支持对标识符区分大小写的数据库 (如 PosgreSQL)。有关详细信息, 请参阅 <table> 页面。
添加了一页说明如何处理 PostgreSQL 中的区分大小写。有关详细信息, 请参阅 PostgreSQL 页。
IBATIS-586-添加了在 columnOverrides 上指定嵌套属性元素的功能。有关详细信息, 请参阅 <columnOverride> 页面。感谢丹 Turkenkopf 的想法和一个不错的初始补丁。
IntrospectedColumn 类现在包含在数据库内省过程中返回的任何列注释。这可能对某些 CommentGenerators 有用。
IBATIS-592 添加了包含计算的 SqlMap 命名空间和计算的运行时表名称的 IntrospectedTable 的属性。现在可以在插件中重写这些。
固定 addCriterionfor JDBC * 方法, 使他们都做一个空检查。
固定 IbatorRunner, 以便显示配置错误 (感谢您的排名)
为 <generatedKey> 添加 IBATIS-605 的 Informix 方言
Addedd 支持 "不同" 选择的示例方法
添加新 "或" 方法到示例类
在 <table> 上添加了新的 "useCompoundPropertyNames" 属性
为扩展示例类启用了更简单的方法
EqualsHashCodePlugin 现在产生了远远优越的方法
版本1.2.1
修复的错误修复了IbatorObjectFactory,因此它将从上下文类加载器中找到内部类。修复了IBATIS-565 - 在SqlMapConfigPlugin中形成错误的注释增强功能改进的模型字段,getter和setter的插件方法,以便插件可以知道正在生成哪个类(主键,基本记录或使用BLOB记录)的类型。添加了IntrospectedTable获取/设置属性的方法。这允许插件类在插件调用之间维护基于表的状态。向插件API添加已初始化的方法。这允许插件改变一些基本代码生成项目(例如生成的类的名称)。添加了一个示例插件来显示初始化方法的用法。版本1.2.0
通告使用版本1.2,Abator更名为Apache iBATIS Ibator。对XML配置以及Java API进行了一些更改。有关现有Abator配置文件所需更改的详细信息,请参阅从Abator迁移页面。修复的错误修复了JavaTypeResolver,使得不支持的数据类型的列可能被配置覆盖。修复了IBATIS-523 - EqualsHashCodePlugin的预发行版本中的错误固定IBATIS-542 - 将版本升级到Ant版本1.7.1增强功能Ibator现在包括一个插件机制。此机制可用于添加或修改由Ibator生成的代码。如果您以前已经扩展了Abator的一个代码生成器来改变他们的行为,我们强烈建议您移动到一个插件。有关详细信息,请参阅<ibatorPlugin>页面。Ibator装有以下插件:一个将生成SQL Map配置文件的插件(org.apache.ibatis.ibator.plugins.SqlMapConfigPlugin)一个插件可以使生成的模型类Serializable(org.apache.ibatis.ibator.plugins.SerializablePlugin)一个插件,将equals和hashCode方法添加到生成的模型类(org.apache.ibatis.ibator.plugins.EqualsHashCodePlugin)增加了对<table>配置元素的“runtimeCatalog”和“runtimeSchema”属性的支持。感谢Dan Turkenkopf的想法和补丁!新生成的方法 - insertSelective。此方法将允许您在insert上的表定义上使用列默认值添加了指定一个DAO实现类的能力与DAO接口类在一个单独的包中。Abator的变化Ibator和Abator之间有几个突破性的变化。此列表详细说明了更改,并具有解决差异的方法。Ibator需要JSE 5.0或更高版本Ibator不包含Abator的“遗留”代码生成器。您必须选择“Ibatis2Java2”或“Ibatis2Java5”作为目标运行时 - 并且从Ibator生成的代码仅与iBATIS版本2.2.0或更高版本兼容。如果您使用的是早期版本的iBATIS - 升级!如果您无法升级,那么您必须继续使用Abator。Ibator中的加载策略从Abator更改。在所有情况下,我们现在建议在Ibator外部指定类路径,我们进一步建议您不要使用<classPathEntry>元素。您可以指定classpath条目,如果您觉得您必须,但这些条目将仅在加载Java模型根类的JDBC驱动程序时使用。如果您为Ibator或插件编写自定义扩展,则必须在Ibator外部指定该类路径条目。Abator扩展的API显着改变。在大多数情况下,旧的Abator接口的实现应该转换为Ibator插件。有关更多信息,请参阅扩展Ibator。afterXXXGenerationHook方法已从所有Ibator提供的核心接口实现中删除。如果您扩展了Ibator提供的实现以使用这些方法,那么您必须将代码迁移到Ibator插件。该版本已经大大修改,现在包括基于Emma的代码覆盖率报告。需要更改XML配置文件。有关详细信息,请参阅从Abator迁移页面。版本1.1.0
通告下一个版本的Abator将需要JRE 5.0或更高版本。Java2现在是默认的生成器集。如果您以前没有指定生成器组,则会导致生成不同的代码。要解决这个问题,请将发电机组设置为“旧”。新生成的方法Abator将产生这些新方法:countByExample此方法将返回一个整数,表示与给定条件匹配的表中的行数。updateByExample此方法将更新表中匹配给定条件的所有行。此方法仅在Java2和Java5生成器集中可用。还有一个“选择性”版本的方法,只更新表的某些列(这种方法的选择性版本可能是在大多数情况下使用的更有用的版本)。已修复的错误修正了创建条件类的角落的错误,但没有设置条件。修复了导致JavaModelGenerator的“trimStrings”属性失败的错误修复了XML文件合并,使内部实体被保留修复了XML配置解析器,以便正确处理外部实体修正了错误 - JDBC BIT数据类型的不正确的数据类型映射修正了Abator为某些数据库列生成错误属性的错误(例如,如果列名称为I_NAME)杂项更改添加了指定属性以忽略限定符并更改表的生成 SQL 中的运行时表名称的功能。此支持的主要用例包括:
为具有公共同义词或别名的表生成对象
为存在于多个架构中的表生成对象, 并且将在运行时选择架构
有关详细信息, 请参见 <table> 参考页, 或者查看示例的 Oracle 参考页。
添加了对标识符包含空格或 sql 保留字的用例的分隔 SQL 标识符的支持。有关更多信息, 请参见 <table>、<abatorContext> 和 <columnOverride> 参考页。
已为生成的密钥添加了 SYBASE 方言。有关详细信息, 请参阅 <generatedKey> 参考页。
添加 DB2_MF (DB2 在主框架) 方言为生成的键。有关详细信息, 请参阅 <generatedKey> 参考页。
Abator 现在将自动转义包含 $ 或 # 字符的标识符, 因为这些字符在 iBATIS 配置文件中具有特殊含义。
为生成的示例类 (仅在 Java2 和 Java5 生成器集中) 添加了一个明确的方法。这允许重用这些类。
增加了指定结果映射应使用列索引而不是结果映射中的列名的功能。此支持的主要用例包括:
当表的名称仅按大小写区分的列 (例如, "名字" 和 "名字")
当您希望尽可能快地进行选择时 (使用列索引时有轻微的性能优势)
有关详细信息, 请参阅 <table> 参考页。
使生成的示例和条件类可扩展。添加了一些有关如何扩展这些类的文档。有关详细信息, 请参阅扩展示例类参考页。
使遗留 DAOs 可扩展。
添加了为列提供重命名规则的功能。这是用于在计算属性名称之前, 列具有应删除的通用前缀的用例。有关详细信息, 请参阅 <columnRenamingRule> 参考页。
增加了对 XML 的持续配置的支持-这将在将来启用图形编辑器。
在所有生成器中添加 afterXXXGenerationHook () 方法, 以便能够将额外的 Java 代码或 XML 元素添加到任何产生的对象中。这将使创建自定义生成器变得更容易。
API 更改以允许使用选定的上下文而不是整个配置文件生成。
API 更改以允许使用选定的表而不是整个配置文件生成。
公开了对命令行和 Ant 任务选择表和/或上下文的新支持-这为 Abator 的命令行添加了高级语法。有关详细信息, 请参阅正在运行的 Abator 参考页。
现在可以为每个表指定 rootClass 和 rootInterface。有关详细信息, 请参阅 <table> 参考页。
如果为任何表指定了 rootClass, 则 Abator 现在将在 rootClass 中签入, 以查看根类中是否已存在生成的属性。如果有, Abator 将不会生成该属性。<javaModelGenerator> 元素现在接受一个属性来指定 rootClass 的类路径。有关详细信息, 请参阅 <javaModelGenerator> 参考页。感谢 Ashok 马达范这段代码的开端。
允许为生成的键元素指定类型 (pre 或 post)。有关详细信息, 请参阅 <generatedKey> 参考页。
添加了一个注释生成器接口, 以便生成自定义注释。有关详细信息, 请参阅 <commentGenerator> 参考页。