MyBatis
是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。
myBatis原理流程:
配置文件
|
|
Resources
|
|--->inputStream
|
SqlSessionFactoryBuilder
|
|--->Configuration(Map<nameSpace+id,MappedStatement(sql,resultType)>,conn)
|
SqlSessionFactory
|
|--->Configuration(Map<nameSpace+id,MappedStatement(sql,resultType)>,conn)
|
SqlSession
|
|--->Map<nameSpace+id,MappedStatement(sql,resultType)>,conn
|
ProxyFactory
|
|--->mappedStatement,conn
|
Executor
| |
| |
| |
输入参数映射 输出参数映射
-
Resources
加载配置文件,有一种是使用类加载进行加载,通过这个类的类加载器进行资源的加载。
-
SqlSessionFactoryBuilder
构建SqlSessionFactory工厂对象需要的对象。采用了构建者模式,屏蔽了对象构建的细节。
-
SqlSessionFactory
创建SqlSession对象所用。使用工厂模式创建,目的就是解耦合。
-
SqlSession
创建代理对象,使用了代理模式。
-
Executor
操作数据库
-
MappedStatement
存储SQL语句、参数、输出结果类型