面试题 --- jdbc执行流程、MyBatis执行流程、MyBatis拦截器配置流程

jdbc执行流程

1. 注册驱动

2. 创建数据库操作对象

3. 执行sql语句

4 .处理操作结果

5 .关闭连接释放资源

MyBatis 执行流程

  Executor执行器、MappedStatement 对象、 StatementHandler 语句处理器 关系可以用以下步骤概括

  1. 用户通过 SqlSession 调用一个方法,SqlSession 通过 Executor 找到对应的 MappedStatement。

  2. Executor 使用找到的 MappedStatement,结合请求参数,通过 StatementHandler 创建并配置 JDBC Statement。

  3. StatementHandler 根据 MappedStatement 中的 SQL 语句及参数映射信息,设置 SQL 参数并执行 SQL。

  4. 执行 SQL 后,StatementHandler 再次发挥作用,处理数据库返回的结果集,并将其按照 MappedStatement 中定义的结果映射转换为 Java 对象,最终返回给客户端。

MyBatis拦截器四种类型

1  Executor 执行器拦截器

2  StatamentHandler  语句拦截

3  ParamaterHandler 参数拦截

4  resultHandler  结果拦截

反射

应用场景

MyBatis拦截器处理参数时

使用hutool工具中的ReflectUtil 的getField()方法获得参数参数对象

setFieldValue()给这个字段赋值

MyBatis拦截器执行流程   (AOP)

  1. 创建自定义拦截器类 : 实现ibatis下的Intercepter接口重写Interceptor方法
  2. 使用Intercepts注解设置拦截类型、拦截点 
@Intercepts(
// type: 拦截器类型
// methd: 拦截器类型中的方法
// args: 方法参数
@Signature(type = ParameterHandler.class,method = "setParameters",args ={PreparedStatement.class})
)

 3.实现方法:其中 intercept 方法是拦截器的核心,用于执行拦截逻辑;plugin 方法用于包装目标对象,返回一个增强的代理对象;setProperties 方法用于设置拦截器属性。

记得加component注解注入IOC容器

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值