MyBatis工做原理

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎全部的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 能够使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。本文将经过debug的方式来了解其工做原理。数据库

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架,其主要就完成2件事情:
1.封装JDBC操做
2.利用反射打通Java类与SQL语句之间的相互转换安全

Mybatis核心类:
SqlSessionFactory:每一个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。SqlSessionFactory 的实例能够经过 SqlSessionFactoryBuilder 得到。而 SqlSessionFactoryBuilder 则能够从 XML 配置文件或经过Java的方式构建出 SqlSessionFactory 的实例。SqlSessionFactory 一旦被建立就应该在应用的运行期间一直存在,建议使用单例模式或者静态单例模式。一个SqlSessionFactory对应配置文件中的一个环境(environment),若是你要使用多个数据库就配置多个环境分别对应一个SqlSessionFactory.
SqlSession:SqlSession是一个接口,它有2个实现类,分别是DefaultSqlSession(默认使用)以及SqlSessionManager。SqlSession经过内部存放的执行器(Executor)来对数据进行CRUD。此外SqlSession不是线程安全的,由于每一次操做完数据库后都要调用close对其进行关闭,官方建议经过try-finally来保证老是关闭SqlSession.
SqlSession:SqlSession是一个接口,它有2个实现类,分别是DefaultSqlSession(默认使用)以及SqlSessionManager。SqlSession经过内部存放的执行器(Executor)来对数据进行CRUD。此外SqlSession不是线程安全的,由于每一次操做完数据库后都要调用close对其进行关闭,官方建议经过try-finally来保证老是关闭SqlSession。框架

相关文章
相关标签/搜索