MyBatis拦截器:给参数对象属性赋值的实例
该拦截器的作用:在进行增加、修改等操作时,给数据模型的一些通用操作属性(如:创建人、创建时间、修改人、修改时间等)自动赋值。
该实现是在DAO层拦截,即存入DB前最后一层。后经分析,不是很合理,改为在service层拦截,用springAOP来实现了,该代码遂弃用。不过已经测试可用,记录备忘。
packagecom.development;
importjava.lang.reflect.InvocationTargetException;
importjava.util.Date;
importjava.util.Map;
importjava.util.Properties;
importorg.apache.commons.beanutils.BeanUtils;
importorg.apache.ibatis.executor.Executor;
importorg.apache.ibatis.mapping.MappedStatement;
importorg.apache.ibatis.mapping.SqlCommandType;
importorg.apache.ibatis.plugin.Interceptor;
importorg.apache.ibatis.plugin.Intercepts;
importorg.apache.ibatis.plugin.Invocation;
importorg.apache.ibatis.plugin.Plugin;
importorg.apache.ibatis.plugin.Signature;
/**
*拦截器作用:给各实体对象在增加、修改时,自动添加操作属性信息。
*/
@Intercepts({@Signature(type=Executor.class,method="update",args={MappedStatement.class,Object.class})})
publicclassOpeInfoInterceptorimplementsInterceptor
{
publicObjectintercept(Invocationinvocation)throwsThrowable
{
Object[]args=invocation.getArgs();
System.out.println("-----------参数拦截---------------------------------------------------");
System.out.println("02当前线程ID:"+Thread.currentThread().getId());
//遍历处理所有参数,update方法有两个参数,参见Executor类中的update()方法。
for(inti=0;i
以上这篇MyBatis拦截器:给参数对象属性赋值的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。