mybatis-generator空判断

用mybatis-generator生成代码,我希望生成<if test="type!=null and type!=''">这样的空判断,实际上生成的是<if test="type!=null>这样的,不好用,改一下。

1、找到sources结尾的jar包

2、把jar导到ide

3、编辑bat,找到generator启动类shellRunner,可以稍微看一下代码

4、修改InsertSelectiveElementGenerator和updatexxxx如图

5、在build路径取出这两个类的.class文件

6、找到原来mybatis-generator-core的jar包,把后缀改成rar,用压缩工具打开,找到路径把InsertSelectiveElementGenerator.class和updatexxxx.class换成自己改的。然后把jar包后缀从rar改回jar

7、启动bat生成代码,收工。

如果你想在用MyBatis Generator生成代码时特别处理text类型的字段,你可以在generatorConfig.xml文件中使用自定义插件来实现。 具体来说,你可以编写一个继承自org.mybatis.generator.api.PluginAdapter的自定义插件类,然后在generatorConfig.xml文件中配置该插件类。 在自定义插件类中,你可以覆盖以下方法来实现特别处理text类型的字段: 1.在modelBaseRecordClassGenerated方法中,你可以通过遍历introspectedTable.getAllColumns()来获取所有的列信息,并根据列的类型来判断是否为text类型的字段,如果是,则可以在生成的实体类中添加自定义注解或者其他特殊处理。 2.在sqlMapInsertSelectiveElementGenerated和sqlMapUpdateByPrimaryKeySelectiveElementGenerated方法中,你可以通过遍历introspectedTable.getAllColumns()来获取所有的列信息,并根据列的类型来判断是否为text类型的字段,如果是,则可以在生成的insert或update语句中添加特殊处理。 例如,以下是一个自定义插件类的示例代码,用于在生成的实体类中为text类型的字段添加@JsonSerialize(using=ToStringSerializer.class)注解: ```java public class TextTypePlugin extends PluginAdapter { @Override public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { List<Field> fields = topLevelClass.getFields(); for (IntrospectedColumn column : introspectedTable.getAllColumns()) { if (column.getFullyQualifiedJavaType().getShortName().equals("String") && column.getJdbcType() == Types.LONGVARCHAR) { for (Field field : fields) { if (field.getName().equals(column.getJavaProperty())) { field.addAnnotation("@JsonSerialize(using=ToStringSerializer.class)"); } } } } return true; } } ``` 在generatorConfig.xml中配置该插件类: ```xml <plugins> <plugin type="com.example.TextTypePlugin" /> </plugins> ``` 这样,在使用MyBatis Generator生成代码时,就会自动为text类型的字段添加@JsonSerialize(using=ToStringSerializer.class)注解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值