mybatis底层map
时间: 2023-11-24 20:34:41 浏览: 32
MyBatis底层使用的是一个名为`MappedStatement`的接口来描述SQL语句的信息,包括SQL语句、输入参数、输出结果映射等。`MappedStatement`中包含了一个`BoundSql`对象,该对象封装了SQL语句以及对应的参数信息。在执行SQL语句时,MyBatis会将`MappedStatement`对象传递给`Executor`接口的实现类,由其负责执行SQL语句,并将结果映射为Java对象。
在执行SQL语句时,MyBatis会先将SQL语句中的占位符替换为真实的参数值,然后将SQL语句发送给数据库执行。执行结果会被封装为Java对象,再根据`ResultMap`的映射关系进行结果映射,最终返回给调用方。
除了`MappedStatement`和`BoundSql`之外,MyBatis底层还使用了许多其他的类来协助执行SQL语句,例如`SqlSession`、`Executor`、`ParameterHandler`、`ResultSetHandler`等等。这些类共同协作,实现了MyBatis的核心功能。
相关问题
mybatis底层实现原理
Mybatis底层实现原理主要包括以下几个方面:
1. SqlSessionFactory:SqlSessionFactory是Mybatis的核心接口,它负责创建SqlSession对象。SqlSession是Mybatis与数据库交互的核心对象,SqlSessionFactory通过它来创建SqlSession对象。
2. Configuration:Configuration是Mybatis的全局配置类,它负责管理Mybatis的所有配置信息,包括数据库连接信息、映射文件信息、缓存信息等。
3. Mapper接口:Mapper接口是Mybatis的另一个核心接口,它定义了数据库操作的方法,Mybatis底层利用JDK动态代理技术实现该接口,底层最后还是使用的IBatis中SqlSession通过Update、Select、Insert、Delete等方法操作。
4. SqlSession:SqlSession是Mybatis与数据库交互的核心对象,它负责管理数据库连接、事务提交、SQL的执行等操作。
5. Executor:Executor是Mybatis的执行器,它负责执行SQL语句,包括SQL的解析、参数绑定、结果集映射等操作。
总的来说,Mybatis底层实现原理主要是通过SqlSessionFactory创建SqlSession对象,SqlSession通过Executor执行SQL语句,最终将结果返回给Mapper接口。同时,Configuration负责管理所有的配置信息,包括数据库连接信息、映射文件信息、缓存信息等。
mybatis 底层实现原理
Mybatis的底层实现原理是基于JDK动态代理技术。具体来说,Mybatis利用动态代理技术生成Mapper接口的实现类。在使用Mybatis时,我们只需要编写Mapper接口,并定义对应的SQL语句,而不需要编写SQL的具体实现代码。
当我们使用Mapper接口时,Mybatis会在运行时动态生成Mapper接口的实现类,并将SQL语句与方法进行关联。当调用Mapper接口的方法时,Mybatis会根据方法名和参数类型来生成对应的SQL语句,并执行该SQL语句。执行SQL语句的过程中,Mybatis会将结果集映射到对应的实体对象或集合中,以方便我们使用。
底层最后还是使用的iBatis中的SqlSession对象来执行SQL语句。SqlSession对象是Mybatis的核心对象之一,它负责管理数据库连接、执行SQL语句以及处理事务等操作。
总结来说,Mybatis底层实现原理是通过JDK动态代理技术生成Mapper接口的实现类,并利用iBatis中的SqlSession对象来执行SQL语句。这样可以方便我们编写和管理SQL语句,减少了手动编写JDBC代码的工作量。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Mybatis底层原理实现](https://blog.csdn.net/weixin_60267819/article/details/120431486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]