美文网首页我爱编程
SqlSession和SqlSessionFactory

SqlSession和SqlSessionFactory

作者: 圣村的希望 | 来源:发表于2018-05-26 17:06 被阅读0次

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

相关文章

网友评论

    本文标题:SqlSession和SqlSessionFactory

    本文链接:https://www.haomeiwen.com/subject/qxbmjftx.html