美文网首页我爱编程
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