SqlSession:应用程序和数据库之间交互的一个单线程对象(非线程安全的),数据库的C、R、U、D及事务的处理接口,select | update | delete | insert | commit | rollback | close | flushStatements等
SqlSessionFactory:工厂设计模式,创建SqlSession的工厂。SqlSessionFactory是MyBatis的关键对象,它是个单个数据库映射关系经过编译后的内存镜像,SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象类获得,而SqlSessionFactoryBuilder则可以从XML配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实例.(单例线程安全)
SqlSession和SqlSseionFactory的类结构图 DefaultSqlSession部分源码SqlSessionFactory和SqlSession的实现过程:
mybatis框架主要是围绕着SqlSessionFactory进行的,创建过程大概如下:
(1)、定义一个Configuration对象,其中包含数据源、事务、mapper文件资源以及影响数据库行为属性设置settings
(2)、通过配置对象,则可以创建一个SqlSessionFactoryBuilder对象
(3)、通过 SqlSessionFactoryBuilder 获得SqlSessionFactory 的实例。
(4)、SqlSessionFactory 的实例可以获得操作数据的SqlSession实例,通过这个实例对数据库进行
如果是spring和mybaits整合之后的配置文件,一般以这种方式实现,SqlSessionFactory的创建:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="mapperLocations" value="classpath:com/cn/mapper/*.xml"></property>
</bean>
SqlSessionFactoryBean是一个工厂Bean,根据配置来创建SqlSessionFactory
网友评论