mybatis3源码分析

1.原生JDBC查询

编写sql–》预编译sql–》参数设置–》执行sql–》结果封装

2.半自动框架

与Hibernate不同,Hibernate是全自动映射框架,目的是消除sql,但是消除sql的同时,Hibernate又失去了灵活性和sql优化空间,尽管提出了一个HQL概念,但是又增加了学习成本。所以,mybatis在这种背景下发展起来的,mybatis选择不封装sql编写操作(mapper.xml文件),封装其他JDBC操作,追求的是封装性,又不失sql灵活性。
mybatis3源码分析_第1张图片

3.mybatis前言

与所有框架一样,mybatis的设计逻辑也是包含两部分:
一个是加载配置文件(config.xml和mapper.xml)流程,封装到SQLSessionFactory中;
一个是创建执行对象流程,创建SqlSession执行对象或Mapper代理对象;

4.解析配置文件和构建SqlSessionFactory

1)调用SqlSessionFactoryBuilder.build(“config.xml”)方法(为了构建SqlSessionFactory对象)
2)XMLConfigBuilder解析config.xml文件成为Configuration对象
3)XMLMapperBuilder解析mapper.xml文件成为MapperProxyFactory对象
4)XMLStatementBuilder解析增删改查标签成为MappedStatement对象
5)解析完成,配置信息封装到Configuration对象中
6)new DefaultSqlSessionFactory(Configuration),SqlSessionFactory构建成功

5.SqlSessionFactory构建SqlSession

1

你可能感兴趣的:(mybatis,mybatis)