参数映射指的是对于java数据类型和jdbc数据类型之间的转换:这里有包括两个过程:查询阶段,我们要将java类型的数据,转换成jdbc类型的数据,通过preparedStatement.setXXX()来设值;另一个就是对resultset查询结果集的jdbcType数据转换成java数据类型。
(至于具体的MyBatis是如何动态构建SQL语句的,我将准备专门一篇文章来讨论,敬请关注~)
2.2. SQL语句的执行以及封装查询结果集成List<E>
动态SQL语句生成之后,MyBatis将执行SQL语句,并将可能返回的结果集转换成List<E>列表。MyBatis在对结果集的处理中,支持结果集关系一对多和多对一的转换,并且有两种支持方式,一种为嵌套查询语句的查询,还有一种是嵌套结果集的查询。
3.1. 事务管理机制
事务管理机制对于ORM框架而言是不可缺少的一部分,事务管理机制的质量也是考量一个ORM框架是否优秀的一个标准,对于数据管理机制我已经在我的博文《深入理解mybatis原理》 MyBatis事务管理机制中有非常详细的讨论,感兴趣的读者可以点击查看。
3.2. 连接池管理机制
由于创建一个连接所占用的资源比较大, 对于数据吞吐量大和访问量非常大的应用而言,连接池的设计就显得非常重要,对于连接池管理机制我已经在我的博文《深入理解mybatis原理》 Mybatis数据源与连接池中有非常详细的讨论,感兴趣的读者可以点击查看。
3.3. 缓存机制
为了提高数据利用率和减小服务器和的压力,MyBatis会对于一些查询提供会话级别的数据缓存,会将对某一次查询,放置到SqlSession中,在允许的时间间隔内,对于完全相同的查询,MyBatis会直接将缓存结果返回给用户,而不用再到中查找。mybatis原理(至于具体的MyBatis缓存机制,我将准备专门一篇文章来讨论,敬请关注~)
3. 4. SQL语句的配置方式
传统的MyBatis配置SQL语句方式就是使用XML文件进行配置的,但是这种方式不能很好地支持面向接口编程的理念,为了支持面向接口的编程,MyBatis引入了Mapper接口的概念,面向接口的引入,对使用注解来配置SQL语句成为可能,用户只需要在接口上添加必要的注解即可,不用再去配置XML文件了,但是,目前的MyBatis只是对注解配置SQL语句提供了有限的支持,某些高级功能还是要依赖XML配置文件配置SQL语句。
引导层是配置和启动MyBatis配置信息的方式。MyBatis提供两种方式来引导MyBatis:基于XML配置文件的方式和基于Java API的方式,读者可以参考我的另一片博文:Java Persistence with MyBatis 3(中文版) 第二章 引导MyBatis
从MyBatis代码实现的角度来看,MyBatis的主要的核心部件有以下几个:
SqlSession作为MyBatis工作的主要顶层API,表示和交互的会话,完成必要增删改查功能
ExecutorMyBatis执行器,是MyBatis 调度的核心,负责SQL语句的生成和查询缓存的维护
StatementHandler封装了JDBC Statement操作,负责对JDBC statement 的操作,如设置参数、将Statement结果集转换成List集合。
ParameterHandler负责对用户传递的参数转换成JDBC Statement 所需要的参数,
ResultSetHandler负责将JDBC返回的ResultSet结果集对象转换成List类型的集合;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-40255-2.html
收二手家电者的广告词
只能美国一家在表演
为什么后来检测用的小米送去的手机呢