大家好,重新学习Mybatis(四)拦截器(含面试题)相信很多的网友都不是很明白,包括也是一样,不过没有关系,接下来就来为大家分享关于重新学习Mybatis(四)拦截器(含面试题)和的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
拦截器简介:
如果熟悉Struts、Spring-MVC的童鞋应该知道,他们提供了拦截器来拦截恶意请求,保护系统安全。 Struts2中的拦截器是一个动态拦截Action调用的对象。它提供了一种机制,允许开发人员定义在操作执行之前和之后执行的代码,并在操作执行之前阻止执行。它还提供了一种提取操作的可重用部分的方法。
mybatis拦截器:
Mybatis为我们提供了比较完善的拦截器功能(官方称之为插件)。那么如何实现这个插件呢?实现方法也比较简单,只需定义一个类来实现Interceptor接口即可。
我们可以看一下官方的连接器演示。
@Intercepts({@Signature( type=Executor.class, method=’update’, args={MappedStatement.class,Object.class})}) 公共类ExamplePlugin 实现拦截器{ 公共对象拦截(调用调用) 抛出Throwable { return调用.proceed();注解中的method=update表示执行更新相关操作(insert、update语句)时,会触发执行进入拦截器intercept方法; incation.proceed() 表示连接器处理已通过,您可以继续下一步。第一阶段。
MyBatis 允许您在执行映射语句期间的某个点拦截调用。默认情况下,MyBatis允许使用插件拦截方法调用,包括以下四种类型:
Executor (update、query、flushStatements、commit、rollback、getTransaction、close、isClosed)ParameterHandler (getParameterObject、setParameters)ResultSetHandler (handleResultSets、handleOutputParameters)StatementHandler (prepare、parameterize、batch、update、query)
mybatis拦截器的应用:
由原发布者开发在几年的工作中,记得使用以下三种场景:
页面查询分页;
打印查询语句的sql日志;
防止跨站脚本(XSS);
面试拓展
1、说说你用过的几种mybatis分页方式,说说你的理解和优缺点。
2、mybatis如何防止SQL注入。
————-
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/126768.html
用户评论
岁岁年年
终于到了我最喜欢的拦截器部分了!之前也遇到过一些 Mybatis 反射操作的需求,一直想明白这个机制,这次就趁机好好学习一下。
有5位网友表示赞同!
陌上花
面试题又来啦!最近准备面试,看到说mybatis的拦截器很常考,这篇文章正好可以温习一下。
有19位网友表示赞同!
柠栀
学习 MyBatis 的时候确实容易忽略一些细节特性,比如拦截器,这个东西太重要了,可以扩展很多功能!
有10位网友表示赞同!
念旧情i
MyBatis 在实际开发中用的频率很高,对它进行深入了解非常有意义。这篇文章介绍的拦截器机制很有帮助,以后碰到类似需求就直接使用拦截器搞定。
有10位网友表示赞同!
日久见人心
拦截器确实很强大,之前没怎么用到,没想到可以用来做数据库日志、SQL拼接等等,看来得好好学习下!
有19位网友表示赞同!
?娘子汉
面试题的代码示例讲解得很清晰,这下彻底理解了拦截器的使用方法。以前总觉得 MyBatis 代码写的繁琐,现在感觉用好拦截器可以简化很多。
有19位网友表示赞同!
你瞒我瞒
我用的主要还是 Mapper 文件配置方式,拦截器好像没必要多说吧,毕竟大多数情况下也用不到。
有16位网友表示赞同!
从此我爱的人都像你
感觉这个部分代码结构有点复杂啊,不过好处是灵活度很高的,可以根据需求来定制功能!
有19位网友表示赞同!
身影
文章质量不错,讲解到位,面试题也很实用。对于初学者来说,这篇文章是一个很好的入门指南!
有17位网友表示赞同!
别在我面前犯贱
我之前一直用 JDBC 写 SQL 语句,后来才慢慢了解到 MyBatis 的便利性,像拦截器这种特性就非常有用。
有17位网友表示赞同!
执妄
学习了这篇博文,我觉得 Mybatis 确实是个好用的框架,而且它还有很多强大的功能值得挖掘。拦截器的使用也非常强大。
有8位网友表示赞同!
在哪跌倒こ就在哪躺下
文章的代码示例没有注释,对于新手来说难以理解,建议加一些详细的注释说明!
有19位网友表示赞同!
心亡则人忘
看完了文章后,我对 MyBatis 的拦截器机制有了更深入的理解,也有一些新的探索方向!
有8位网友表示赞同!
念安я
我觉得在实际开发过程中,使用拦截器需要权衡成本和收益,如果功能复杂度不高,建议直接在 Mapper 接口中处理。
有9位网友表示赞同!
有你,很幸福
MyBatis 真是个神奇的框架,能够通过拦截器进行各种定制化功能,扩展性强悍!
有14位网友表示赞同!
■孤独像过不去的桥≈
之前只知道 Mybatis 的基本用法,这次文章让我了解到它的更深层次特性。感觉学习 MyBatis 真是一个不断探索的过程!
有11位网友表示赞同!
笑叹★尘世美
这篇文章讲的很好,面试题也很实用,我准备好好复习一下,争取把 Mybatis 用得更加熟练!
有11位网友表示赞同!
情如薄纱
之前写代码的时候,总是不小心犯各种各样的错误,现在学会了使用拦截器机制,感觉很多问题都变得容易解决。
有16位网友表示赞同!