自定义注释可以让生成的代码更加规范化和具有可读性,MyBatis Generator提供了多个配置选项来实现自定义注释。下面详细讲解如何自定义注释生成的完整攻略:
1. 在generatorConfig.xml配置文件中添加注释生成配置
在generatorConfig.xml文件中,可以通过添加count和commentGenerator两个节点来实现注释生成的配置。
<!-- 指定注释生成器 -->
<commentGenerator type="org.mybatis.generator.internal.DefaultCommentGenerator">
<!-- 是否生成日期 -->
<property name="suppressDate" value="true"/>
<!-- 是否生成注释 -->
<property name="suppressAllComments" value="false"/>
<!-- 注释中是否生成数据库中列名 -->
<property name="columnRemarks" value="true"/>
</commentGenerator>
在commentGenerator节点内部,type指定了注释生成器的全路径的类名,suppressDate标记控制是否在注释中生成日期,suppressAllComments标记控制是否生成所有注释,columnRemarks标记控制是否在注释中生成数据库中列名。
除了注释生成器之外,还可以通过添加count节点来指定是否生成表的行数,示例代码如下:
<table tableName="user">
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
<columnOverride column="password" javaType="String" jdbcType="CHAR"/>
<columnOverride column="delete_flag" javaType="Integer" jdbcType="TINYINT"/>
<ignoreColumn column="create_time"/>
<ignoreColumn column="update_time"/>
<!-- 生成行数 -->
<countColumn tableName="user" columnName="id" />
</table>
count节点中的tableName属性指定要生成行数的表名,columnName属性指定表中的哪个列用于计算行数。
2. 在DefaultCommentGenerator中自定义注释模板
MyBatis Generator默认使用DefaultCommentGenerator来生成注释,我们可以自定义注释模板来生成符合自己需求的注释信息。具体做法如下:
首先,需要继承DefaultCommentGenerator并重写以下方法:
public class CustomCommentGenerator extends DefaultCommentGenerator {
@Override
public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
super.addFieldComment(field, introspectedTable, introspectedColumn);
}
@Override
public void addGetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
super.addGetterComment(method, introspectedTable, introspectedColumn);
}
@Override
public void addSetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
super.addSetterComment(method, introspectedTable, introspectedColumn);
}
}
其次,需要在generatorConfig.xml文件中指定注释生成器为自定义生成器:
<commentGenerator type="com.example.CustomCommentGenerator">
...
</commentGenerator>
最后,可以在自定义注释生成方法中,使用introspectedTable和introspectedColumn两个对象获取表和列信息,并在注释中使用这些信息展示自己想要的信息。下面是一个例子:
public class CustomCommentGenerator extends DefaultCommentGenerator {
@Override
public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
StringBuilder sb = new StringBuilder();
field.addJavaDocLine("/**");
sb.append(" * ").append(introspectedTable.getFullyQualifiedTable()).append(".").append(introspectedColumn.getActualColumnName());
sb.append(": ").append(introspectedColumn.getRemarks());
field.addJavaDocLine(sb.toString());
field.addJavaDocLine(" */");
}
}
在上面的例子中,我们通过introspectedTable和introspectedColumn对象,获取了表名,列名和列备注,然后将这些信息组装成注释添加到了字段上。可以看到,在自定义注释生成方法中,可以完全自由地组合想要展示的信息,实现注释的高度可读性和规范性。
综上所述,通过配置generatorConfig.xml文件,以及自定义注释生成器可以实现自定义注释生成。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis-generator如何自定义注释生成 - Python技术站