今天开始写系列技术,先从mybatis开始吧。
现在几乎所有的java开发者都用过mybatis,但是它究竟是什么,和ibatis的区别在哪里,发展的历程是什么,有哪些核心组件,这些核心组件之间的依赖和调用关系是怎样的。我们这个系列就讲这些东东。
介绍:
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
心路历程:
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。 2013年11月迁移到Github。
下载地址:
https://github.com/mybatis/mybatis-3
mybatis的处理过程:
对于执行过程的解释:
1.mybatis有两类配置文件,一类是全局配置文件,约定的名称为:SqlMapConfig.xml,可以修改,包含全局配置(数据库链接,连接池,事务),该文件和业务场景无关。
另一类是mapper配置文件,主要包含具体业务场景需要执行的SQL脚本。
2.通过全局配置文件,可以构造出sqlSessionFactory,即会话工厂,其意义是创建会话。
3.sqlSessionFactory可以创建会话:sqlSession,mybatis是通过sqlsession来创建会话的。
4.sqlSession是面向程序员的接口,但他也不是最终操作数据库的,他是依赖于executor进行操作的。
5.executor要执行的信息被封装的到mappedstatement中,也就是我们写的mapper文件,mapper文件中每一条执行单元,都被封装成一个mappedstatement对象,所以命名空间和id构成了mappedstatement的唯一标识。
从网上下载下来的Mybatis包含以下内容,lib是mybatis自身的依赖包,mybatis-3.*.*.jar是mybatis的核心jar文件。
mybatis-3.2.7.pdf建议想学习的人详读,这个读懂了,mybatis的使用易如反掌。
下一节我们写一个mybatis的demo来进一步说明