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拦截器:给参数对象属性赋值的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。