全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

mybatis interceptor 处理查询参数及查询结果的实例代码

下面给大家介绍mybatis interceptor 处理查询参数及查询结果,具体代码如下所示:

/**
 * Created by windwant on 2017/1/12.
 */
@Intercepts({
    @Signature(type=Executor.class,method="update",args={MappedStatement.class,Object.class}),
    @Signature(type=Executor.class,method="query",args={MappedStatement.class,Object.class,RowBounds.class,ResultHandler.class})
})
public class EncryptInterceptor implements Interceptor {
  public static final Logger logger = LoggerFactory.getLogger(EncryptInterceptor.class);
  @Override
  public Object intercept(Invocation invocation) throws Throwable {
    dealParameter(invocation);
    Object returnValue = invocation.proceed();
    dealReturnValue(returnValue);
    return returnValue;
  }
  //查询参数加密处理
  private void dealParameter(Invocation invocation) {
    MappedStatement statement = (MappedStatement) invocation.getArgs()[0];
    String mapperl = ConfigUtils.get("mybaits.mapper.path");
    String methodName = statement.getId().substring(statement.getId().indexOf(mapperl) + mapperl.length() + 1);
    if (methodName.startsWith("UserBaseMapper")){
      if(methodName.equals("UserBaseMapper.updateDriver")){
        ((Driver) invocation.getArgs()[1]).encrypt();
      }
    }
    logger.info("Mybatis Encrypt parameters Interceptor, method: {}, args: {}", methodName, invocation.getArgs()[1]);
  }
  //查询结果解密处理
  private void dealReturnValue(Object returnValue){
    if(returnValue instanceof ArrayList<?>){
      List<?> list = (ArrayList<?>)returnValue;
      for(Object val: list){
        if(val instanceof Passenger){///
          //TODO
        }
        logger.info("Mybatis Decrypt result Interceptor, result object: {}", ToStringBuilder.reflectionToString(val));
      }
    }
  }
  @Override
  public Object plugin(Object target) {
    return Plugin.wrap(target, this);
  }
  @Override
  public void setProperties(Properties properties) {
  }
}

添加配置:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
       <property name="typeAliasesPackage" value="com.xx.model"/>
       <property name="dataSource" ref="dataSource"/>
       <!-- 自动扫描mapping.xml文件 -->
       <property name="mapperLocations" value="classpath*:mybatis/*.xml"></property>
       <property name="plugins">
           <array>
              <bean class="com.github.pagehelper.PageHelper">
                  <property name="properties">
                     <value>dialect=hsqldb</value>
                  </property>
              </bean>
              <bean class="com.xx.interceptor.EncryptInterceptor">
                  <property name="properties">
                     <value>property-key=property-value</value>
                  </property>
              </bean>
           </array>
       </property>
    </bean>

以上所述是小编给大家介绍的mybatis interceptor 处理查询参数及查询结果的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# mybatis  # interceptor  # 查询参数  # 为什么mybatis中的SqlSession一定要关闭  # Mybatis-plus新版本分页失效PaginationInterceptor过时的问题  # Mybatis Interceptor线程安全引发的bug问题  # 查询结果  # 给大家  # 小编  # 在此  # 所示  # 所述  # 给我留言  # 感谢大家  # 疑问请  # 有任何  # throws  # Invocation 


相关文章: 建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  视频网站app制作软件,有什么好的视频聊天网站或者软件?  建站主机服务器选购指南:轻量应用与VPS配置解析  建站之星会员如何解锁更多建站功能?  Python lxml的etree和ElementTree有什么区别  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  兔展官网 在线制作,怎样制作微信请帖?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  公司网站的制作公司,企业网站制作基本流程有哪些?  Python多线程使用规范_线程安全解析【教程】  建站之星微信建站一键生成小程序+多端营销系统  建站之星后台密码遗忘或太弱?如何重置与强化?  制作农业网站的软件,比较好的农业网站推荐一下?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  个人网站制作流程图片大全,个人网站如何注销?  h5网站制作工具有哪些,h5页面制作工具有哪些?  建站之星2.7模板:企业网站建设与h5定制设计专题  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  自助网站制作软件,个人如何自助建网站?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  建站之星安装需要哪些步骤及注意事项?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  已有域名如何快速搭建专属网站?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  网站制作公司排行榜,抖音怎样做个人官方网站  建站之星安装后界面空白如何解决?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  b2c电商网站制作流程,b2c水平综合的电商平台?  免费网站制作appp,免费制作app哪个平台好?  移民网站制作流程,怎么看加拿大移民官网?  如何零成本快速生成个人自助网站?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  建站主机CVM配置优化、SEO策略与性能提升指南  如何在阿里云香港服务器快速搭建网站?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  建站主机选虚拟主机还是云服务器更好?  如何通过虚拟主机空间快速建站?  建站之星logo尺寸如何设置最合适?  制作网站的基本流程,设计网站的软件是什么?  音乐网站服务器如何优化API响应速度?  已有域名如何免费搭建网站?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  PHP正则匹配日期和时间(时间戳转换)的实例代码  相册网站制作软件,图片上的网址怎么复制?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  如何快速重置建站主机并恢复默认配置?  微课制作网站有哪些,微课网怎么进? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。