首页 > 编程知识 正文

mybatis拦截器不生效,update拼接字符串

时间:2023-05-03 17:38:11 阅读:16343 作者:2666

何时修改sql :预编译sql (在prepare方法之前添加修改的逻辑)。 可以同时处理sql处理和映射类

准备的xml文件: mybatis-config.xml:

? XML版本=' 1.0 '编码=' utf-8 '? doctypeconfigurationpublic '-//my batis.org//dtd config 3.0//en ' ' http://my batis.org/dtd/my batis-3-config.dtd ' configuration pluginsplugininterceptor='阻止程序的完整包名称'//plugins/configuration @ slf4j @ integer.class}}} publicclassupdatetimeinterceptorimplementsinterceptor { @ overridepublicobjectintercept (invocationintercept ) @ overrrrided able { statementhandlerstatementhandler=(statement handler ) invocation.getTarget ); //先阻止RoutingStatementHandler,其中有语句处理程序类型的delegate变量,其实现类是BaseStatementHandler。 然后,BaseStatementHandler的成员变量mappedstatementmetaobjectmetaobject=meta object.for object (statement handler, systemmetaobject.forobject )去system meta object.default _ object _ wrapper _ factory, new defaultreflectorfactory (mappedstatementmappedstatement=(mapped statement ) meta object.getvalue (delegate.mapped state ) //sql语句类型: UNKNOWN、INSERT、UPDATE、DELETE、SELECT、FLUSH、UPDATE、SqlCommandType为enumstringsqlcommandtype=mappedstype //得到的映射类和SQL object obj=boundsql.getparameter object (; String sql=boundSql.getSql (; 在update语句时包含updateTime变量,如果已覆盖,则包含if (包含sqlcommand type.equals (' update ' ) ) reflectutil.setfieldvalue } @ overridepublicobjectplugin (objecto ) returnplugin.wrap ) o,this ); } @ overridepublicvoidsetproperties (属性属性) }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。