目前业界大多喜欢用Mybatis作为操作数据库的ORM框架,Mybatis框架学习起来也比较简单,开发的时候也比较方便,也符合目前的面向接口式编程。
Mybatis的框架设计
-
数据的处理
对数据的处理可以分为两部分 根据传入的参数动态的拼装sql 和 对sql执行的结果封装成 JavaBean
参数映射指的是对于java 数据类型和jdbc数据类型之间的转换,这里有包括两个过程:查询阶段,我们要将java类型的数据,转换成jdbc类型的数据,通过 preparedStatement.setXXX() 来设值;另一个就是对resultset查询结果集的jdbcType 数据转换成java 数据类型
此处可以参考文章 Mybatis原理--动态生成SQL
-
SQL语句的执行以及封装查询结果集成List<E>
动态SQL语句生成之后,MyBatis 将执行SQL语句,并将可能返回的结果集转换成List<E> 列表。MyBatis 在对结果集的处理中,支持结果集关系一对多和多对一的转换,并且有两种支持方式,一种为嵌套查询语句的查询,还有一种是嵌套结果集的查询
框架支撑层
事务管理机制
事务管理机制对于ORM框架而言是不可缺少的一部分,事务管理机制的质量也是考量一个ORM框架是否优秀的一个标准,对于数据管理机制我已经在我的博文《Mybatis原理--事务管理》 中有非常详细的讨论,感兴趣的读者可以点击查看。连接池管理机制
由于创建一个数据库连接所占用的资源比较大, 对于数据吞吐量大和访问量非常大的应用而言,连接池的设计就显得非常重要,对于连接池管理机制我已经在我的博文《Mybatis原理——数据源和连接池》 中有非常详细的讨论,感兴趣的读者可以点击查看。缓存机制
为了提高数据利用率和减小服务器和数据库的压力,MyBatis 会对于一些查询提供会话级别的数据缓存,会将对某一次查询,放置到SqlSession**中,在允许的时间间隔内,对于完全相同的查询,MyBatis
会直接将缓存结果返回给用户,而不用再到数据库中查找。可以参考Mybatis原理--缓存机制(一级缓存) 和 Mybatis原理--缓存机制(二级缓存)
以上就是《Mybatis原理--总纲》的全部内容,如有不正确的地方,请读者指正,互相学习,共同进步,谢谢。