欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mybatis interceptor 處理查詢參數(shù)及查詢結(jié)果的實例代碼

 更新時間:2017年01月24日 11:16:55   作者:WindWant  
這篇文章主要介紹了mybatis interceptor 處理查詢參數(shù)及查詢結(jié)果,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

下面給大家介紹mybatis interceptor 處理查詢參數(shù)及查詢結(jié)果,具體代碼如下所示:

/**
 * 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;
  }
  //查詢參數(shù)加密處理
  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]);
  }
  //查詢結(jié)果解密處理
  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 處理查詢參數(shù)及查詢結(jié)果的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Lombok為啥這么牛逼?SpringBoot和IDEA官方都要支持它

    Lombok為啥這么牛逼?SpringBoot和IDEA官方都要支持它

    Lombok是一款Java代碼功能增強庫,在Github上已有9.8k+Star。這篇文章主要介紹了Lombok為啥這么牛逼?SpringBoot和IDEA官方都要支持它,需要的朋友可以參考下
    2020-12-12
  • SpringBoot開發(fā)技巧之使用AOP記錄日志示例解析

    SpringBoot開發(fā)技巧之使用AOP記錄日志示例解析

    這篇文章主要為大家介紹了SpringBoot開發(fā)技巧之如何利用AOP記錄日志的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-10-10
  • java實現(xiàn)table添加右鍵點擊事件監(jiān)聽操作示例

    java實現(xiàn)table添加右鍵點擊事件監(jiān)聽操作示例

    這篇文章主要介紹了java實現(xiàn)table添加右鍵點擊事件監(jiān)聽操作,結(jié)合實例形式分析了Java添加及使用事件監(jiān)聽相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • 詳解如何自定義parallelStream線程池

    詳解如何自定義parallelStream線程池

    這篇文章主要為大家介紹了如何自定義parallelStream的線程池實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • 詳解Spring注解@Autowired的實現(xiàn)原理和使用方法

    詳解Spring注解@Autowired的實現(xiàn)原理和使用方法

    在使用Spring開發(fā)的時候,配置的方式主要有兩種,一種是xml的方式,另外一種是 java config的方式,在使用的過程中,我們使用最多的注解應(yīng)該就是@Autowired注解了,所以本文就給大家講講@Autowired注解是如何使用和實現(xiàn)的,需要的朋友可以參考下
    2023-07-07
  • 深入研究spring boot集成kafka之spring-kafka底層原理

    深入研究spring boot集成kafka之spring-kafka底層原理

    這篇文章主要深入研究了spring boot集成kafka如何實現(xiàn)spring-kafka的底層原理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-02-02
  • Java中Iterator迭代器的簡單理解

    Java中Iterator迭代器的簡單理解

    這篇文章主要介紹了Java中Iterator迭代器的簡單理解,Iterator接口也是Java集合中的一員,但它與Collection、Map接口有所不同,Iterator主要用于迭代訪問Collection中的元素,因此Iterator對象也被稱為迭代器,需要的朋友可以參考下
    2024-01-01
  • Java案例分享-集合嵌套

    Java案例分享-集合嵌套

    這篇文章主要介紹了Java案例分享-集合嵌套,通過案例創(chuàng)建一個ArrayList集合,存儲三個元素,每一個元素都是HashMap,每一個HashMap的鍵和值都是String,并遍歷,實際操作內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • Spring AOP實現(xiàn)Redis緩存數(shù)據(jù)庫查詢源碼

    Spring AOP實現(xiàn)Redis緩存數(shù)據(jù)庫查詢源碼

    這篇文章主要介紹了Spring AOP實現(xiàn)Redis緩存數(shù)據(jù)庫查詢的相關(guān)內(nèi)容,源碼部分還是不錯的,需要的朋友可以參考下。
    2017-09-09
  • Java設(shè)計模式之Adapter適配器模式

    Java設(shè)計模式之Adapter適配器模式

    這篇文章主要為大家詳細介紹了Java設(shè)計模式之Adapter適配器模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評論