国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

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

2019-11-26 13:10:43
字體:
供稿:網(wǎng)友

下面給大家介紹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é)果的實(shí)例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 北票市| 盐城市| 德格县| 濮阳县| 泰兴市| 昂仁县| 穆棱市| 巫溪县| 临邑县| 麟游县| 临潭县| 荔波县| 邯郸市| 宿州市| 晋宁县| 绍兴市| 习水县| 晋州市| 淄博市| 福海县| 普陀区| 桦甸市| 湾仔区| 普安县| 合山市| 南丹县| 嘉禾县| 广昌县| 互助| 锦屏县| 泰安市| 运城市| 松桃| 喜德县| 乐安县| 湖南省| 玉林市| 贡觉县| 边坝县| 安陆市| 玉山县|