东方国信JAVA面经
文章目录
题目选自牛客面经!!! 内容来自个人整理!!!
1、mybatis使用流程
介绍
MyBatis的底层操作封装了JDBC的API,其工作原理和核心流程与JDBC的使用步骤一脉相承。
MyBatis的基本工作原理就是:先封装SQL,接着调用JDBC操作数据库,最后把数据库返回的表结果封装成Java类
JDBC对象
名称 | 描述 |
---|---|
DriverMananger | 用于注册数据库连接 |
Connection | 与数据库连接 |
Statement/PrepareStatement | 操作数据库SQL语句的对象 |
ResultSet | 结果集或一张虚拟表 |
Mybatis对象
名称 | 描述 |
---|---|
SqlSession | 包含了所有SQL语句,但是并不是执行者,类似Connection |
Executor | 根据SqlSession对象传来的参数动态生成SQL语句,同时负责查询缓存的维护 |
MappedStatement | 对映射SQL的封装,用于存储要映射SQL语句的ID、参数等信息 |
ResultHandler | 对返回结果进行处理,最终得到自己想要的数据格式或类型,可以自定义返回类型 |
tips: 在JDBC中,Connection不直接执行SQL方法,而是利用Statement或者PrepareStatement来执行方法。在使用JDBC建立了连接之后,可以使用Connection接口的createStatement()方法来获取Statement对象,也可以调用prepareStatement()方法获得PrepareStatement对象,通过executeUpdate()方法来执行SQL语句。而在MyBatis中,SqlSession对象包含了执行SQL语句的所有方法,但是它是委托Executor执行的。从某种意义上来看,MyBatis里面的SqlSession类似于JDBC中的Connection,他们都是委托给其他类去执行.
工作流程
以下内容均摘自:MyBatis中文官网 详细且易懂
流程描述