Mybatis源码分析(二)- SqlSessionFactory和SqlSession详解

本文深入分析Mybatis的SqlSessionFactory,它是应用入口,提供SqlSession实例。SqlSession则包含数据库的CRUD操作。SqlSessionFactory的openSession方法有不同的参数,如autoCommit、connection和transactionIsolationLevel。ExecutorType定义了SIMPLE, REUSE, BATCH三种执行类型。DefaultSqlSessionFactory的openSession逻辑包括获取事务对象和生成SqlSession。SqlSession的select和update方法分别用于查询和更新操作,通过Executor执行。" 124161991,13388261,Python正则表达式基础与应用,"['Python', '正则表达式']
摘要由CSDN通过智能技术生成

本系列以Mybatis 3.3.X分支源码作为分析源,mybatis源码Git地址:https://github.com/mybatis/mybatis-3.git

 SqlSessionFactory 作为Mybatis的应用入口,主要提供了各种获取SqlSession实例的方法。SqlSessionFactory在大部分情况下,建议在系统中生成唯一实例(读写分离、多库连接等除外)。

SqlSession主要提供了常用的数据库增删查改操作。

一、 SqlSessionFactory类

  SqlSessionFactory主要定义了几个重载的openSession方法,其主要实现为org.apache.ibatis.session.defaults.DefaultSqlSessionFactory。

首先描述下SqlSessionFactory的所有方法涉及到的参数:

booleaautoCommit主要为connection.setAutoCommit(autoCommit)的参数,表示是否自动提交

Connection connection:数据库连接

TransactionIsolationLevel level:事务隔离级别,其为enum参数,主要定义了五种事务隔离级别与Connection中五种隔离级别一一对应。这里简要描述下各个级别的含义:

TransactionIsolationLevel.NONE 表示不支持事务

TransactionIsolationLevel.READ_UNCOMMITTED 表示可能发生脏读、不可重复读和幻读, 属于限制性最弱的隔离级别,并发性较高

TransactionIsolationLevel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值