写了一个简单的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类型的取值大小验证
分享到:
相关推荐
- **服务端验证**: Hibernate Validator(实现了JSR 303 Bean Validation API)。 - **布局框架**: SiteMesh(页面布局框架)。 - **工作流引擎**: Activiti(开源工作流引擎)。 - **任务调度**: Quartz(强大的...
网上的东西好大多都不能直接用,自己结合网上资料做了一个Struts2+Spring3+MyBatis3的测试工程,JUnit测试用例和WEB服务。 内涵完整jar包,解压直接可用,包括一个表文件。 Eclipse3.2+Tomcat/5.5+jdk1.5.0_17 - ...
Spring 3.0版本在前代基础上增强了对JSR-303(Bean Validation)的支持,改进了AOP(面向切面编程)和声明式事务管理,还引入了更多对RESTful服务的支持。其关键组件包括IoC(Inversion of Control,控制反转)容器...
3. `hibernate-validator.jar`:提供了JSR-303/JSR-349 Bean Validation规范的实现,用于校验实体对象。 4. `javassist.jar`:代码生成库,Hibernate在运行时动态生成代理类。 5. `jta.jar`:Java Transaction API,...
Spring2.5.6版本增强了对JSR-303(Bean Validation)的支持,改进了数据访问抽象,以及对其他框架如Hibernate和MyBatis的整合。 **Hibernate** 是一个流行的ORM(Object-Relational Mapping)框架,用于简化Java...