Mybatis JSR303 bean validation plugin

写了一个简单的for mybatis的jsr303 代码生成插件,用于配置在mybatis 的代码生成配置参数文件中,代码如下:

package com.shinowit.mybatis.plugin;

import java.sql.Types;
import java.util.List;

import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.api.dom.java.Field;
import org.mybatis.generator.api.dom.java.TopLevelClass;

public class JSR303Plugin extends PluginAdapter {
	
	@Override
	public boolean validate(List<String> warnings) {
		return true;
	}

	@Override
	public boolean modelFieldGenerated(Field field,
			TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn,
			IntrospectedTable introspectedTable, ModelClassType modelClassType) {
		
		if (false==introspectedColumn.isNullable()){
			if (false==introspectedColumn.isIdentity()){
				topLevelClass.addImportedType("javax.validation.constraints.NotNull");
				field.addAnnotation("@NotNull");
			}
		}
		
		if (true==introspectedColumn.isStringColumn()){
			topLevelClass.addImportedType("javax.validation.constraints.Size");
			field.addAnnotation("@Size(min = 0, max = "+introspectedColumn.getLength()+" , message = \"长度必须在{min}和{max}之间\")");
		}
		
		if (introspectedColumn.getJdbcType()==Types.INTEGER){
			topLevelClass.addImportedType("javax.validation.constraints.Max");
			field.addAnnotation("@Max(value=2147483647,message=\"最大值不能高于{value}\")");
			topLevelClass.addImportedType("javax.validation.constraints.Min");
			field.addAnnotation("@Min(value=-2147483648,message=\"最小值不能低于{value}\")");
		}
		
		return super.modelFieldGenerated(field, topLevelClass, introspectedColumn,
				introspectedTable, modelClassType);
	}
	
	

}

 

有兴趣的可以继续写对byte类型,short类型的取值大小验证

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值