②提供强大,灵活的映射机智。提供动态Sql.
③在mybatis中,提供了使用Mapper的接口编程。只要一个接口和一个Xml就能创建映射器。
2.组件:SqlSessionFactoryBuilder(构造器):会根据配置文件或者代码生产SqlSessionFactory,采用的是分步构建的Builder模式
SqlSessionFactory(工厂接口):依靠它来生成SqlSession,使用的是工厂模式
SqlSession(会话):一个既可以发送Sql执行返回结果,也可以获取Mapper的接口。
Sql Mapper(映射器):它是由java接口和xmL文件或者注解构成,需要给出对应的Sql和映射规则,它负责发送Sql去执行并返回结果。
3.缓存:一级缓存是在SqlSession上的缓存。二级缓存是在SqlSessionFactory上的。mybatis系统会开启一级缓存。如果要开启二级缓存需要加上<cache>配置
4.构建SqlSessionFactory过程:①通过XmlConfigBuilder解析配置XML文件,读出的内容放在Configuration对象中,而Configuration采用的是单例模式。
②:使用Configuration对象去创建SqlSessionFactory。是一个接口,Mybatis提供了一个默认的实现类DefaultSqlSessionFactory.
5.原理:Mapper的XML文件的命名空间对应的是接口的全限定名,而方法就是那条SQL的id,这样Mybatis就可以根据全路径和发方法名将其和代理对象绑定起来。通过动态代理技术让这个接口运行起来。而后采用命令模式,最后使用SqlSession接口的方法使得它能够运行的SQL。
6.SqlSession:四大对象:Executor:代表执行器。
StatementHandler:使用Statement执行操作。
ParameterHandler:用来处理Sql参数
ResultSetHandler:进行数据结果集的封装返回处理