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

news/2024/5/18 21:30:22 标签: 数据库, java, 流程图

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注解设置拦截类型、拦截点 
java">@Intercepts(
// type: 拦截器类型
// methd: 拦截器类型中的方法
// args: 方法参数
@Signature(type = ParameterHandler.class,method = "setParameters",args ={PreparedStatement.class})
)

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

记得加component注解注入IOC容器


http://www.niftyadmin.cn/n/5428147.html

相关文章

Vue:自定义消息通知组件

一、效果描述 在JS中使用一个Message函数,弹出一个自定义的消息框。 效果体验:缓若江海凝清光 二、实现方式 1.新建一个消息组件 2.新建一个js文件,新建一个需要导出函数 3.在函数中新建一个Vue实例,并将消息组件挂载上去。…

FreeRTOS操作系统学习——中断管理

中断管理介绍 嵌入式实时系统需要对整个系统环境产生的事件作出反应。这些事件对处理时间和响应时间都有不同的要求。事件通常采用中断方式检测,中断服务例程(ISR)中的处理量应当越短越好。ISR是在内核中被调用的, ISR执行过程中,用户的任务…

python基础知识总结

一、Python数据结构 不可变数据结构(3 个):Number(整数)、String(字符串)、Tuple(元组) 可变数据结构(3 个):List(列表&am…

普林斯顿算法讲义(二)

原文:普林斯顿大学算法课程 译者:飞龙 协议:CC BY-NC-SA 4.0 2.2 归并排序 原文:algs4.cs.princeton.edu/22mergesort 译者:飞龙 协议:CC BY-NC-SA 4.0 我们在本节中考虑的算法基于一种简单的操作&#xff…

安卓之四大组件

组件描述Activity(活动)在应用中的一个Activity可以用来表示一个界面,意思可以理解为“活动”,即一个活动开始,代表 Activity组件启动,活动结束,代表一个Activity的生命周期结束。一个Android应用必须通过Activity来运…

TikTok直播畅通无阻,海外直播专线打造稳定流畅的网络环境

随着tiktok的爆火,越来越多的商家开始尝试在tiktok进行直播。然而,由于距离长、横跨大陆海洋等原因,在海外直播时网络问题十分突出,例如冻结和传输故障,给观众带来不良体验。为了解决这一问题,tiktok海外直…

都2024年了还不会vue3?从0到1 用vite搭建vue3项目,开箱即用

Vue.js(通常简称为Vue)是一个开源的JavaScript框架,用于构建用户界面和单页应用程序(SPA)。它于2014年首次发布,由Evan You创建,旨在提供一个更轻量、更易于学习的前端框架。Vue的核心库专注于视…

openGauss学习笔记-241 openGauss性能调优-SQL调优-审视和修改表定义

文章目录 openGauss学习笔记-241 openGauss性能调优-SQL调优-审视和修改表定义241.1 审视和修改表定义概述241.2 选择存储模型241.3 使用局部聚簇241.4 使用分区表241.5 选择数据类型 openGauss学习笔记-241 openGauss性能调优-SQL调优-审视和修改表定义 241.1 审视和修改表定…