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

2025-05-29 0 61

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48
/**

* 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) {

}

}

添加配置:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20
<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 处理查询参数查询结果的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对快网idc网站的支持!

原文链接:http://www.cnblogs.com/niejunlei/archive/2017/01/24/6346610.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 mybatis interceptor 处理查询参数及查询结果的实例代码 https://www.kuaiidc.com/119080.html

相关文章

发表评论
暂无评论