源码:

public interface SqlSessionFactory {
SqlSession openSession(); SqlSession openSession(boolean var1); SqlSession openSession(Connection var1); SqlSession openSession(TransactionIsolationLevel var1); SqlSession openSession(ExecutorType var1); SqlSession openSession(ExecutorType var1, boolean var2); SqlSession openSession(ExecutorType var1, TransactionIsolationLevel var2); SqlSession openSession(ExecutorType var1, Connection var2); Configuration getConfiguration();
}

分析:

1、无参数 openSession() 无须解释

2、openSession(boolean var1) : api 中为[ openSession(boolean autoCommit) ],该布尔值是用来控制该 sqlSession 是否自动提交,true表示自动提交,false表示不自动提交[与无参的方法功能一致,都不自动提交]

3、openSession(Connection var1) :api中为[ openSession(Connection connection) ],该Connection为 java.sql.Connection

4、openSession(TransactionIsolationLevel var1) :api中为[ openSession(TransactionIsolationLevel level) ]

  TransactionIsolationLevel 事务的隔离级别,枚举类型,有5个值:NONE、READ_COMMITTED(读取提交内容)、READ_UNCOMMITTED(读取未提交内容)、REPEATABLE_READ(可重读)、SERIALIZABLE(可串行化)

5、openSession(ExecutorType var1) :api中为[ openSession(ExecutorType execType) ],ExecutorType执行器类型,枚举类型,有3个值:SIMPLE、REUSE(重用预处理语句)、BATCH(重用语句和批量更新)

6、其他为上面的组合,含义一致

调皮的 COMMIT

mybatis 默认是不自动提交的,因此可能出现一个奇怪的问题:在select数据库是没有问题, insert、delete、update也可以成功,但是数据没有发生变化,就是因为这个调皮的commit默认机制导致的

解决办法:需要在insert、delete、update后手动提交,或者在创建sqlSession时使用上面第二种方式,参数设置为True即可解决

SqlSessionFactory的更多相关文章

  1. Spring3 整合MyBatis3 配置多数据源 动态选择SqlSessionFactory

    一.摘要 上两篇文章分别介绍了Spring3.3 整合 Hibernate3.MyBatis3.2 配置多数据源/动态切换数据源 方法 和 Spring3 整合Hibernate3.5 动态切换Ses ...

  2. Java框架篇---Mybatis 构建SqlSessionFactory

    从 XML 中构建 SqlSessionFactory 基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的.SqlSessionFactory 的实例可以通过 ...

  3. 没有必要去指定SqlSessionFactory或SqlSessionTemplate

    <!-- 自动注册mybatis mapper bean --><!-- 注意,没有必要去指定SqlSessionFactory或SqlSessionTemplate,     因为 ...

  4. mybatis源码分析(1)——SqlSessionFactory实例的产生过程

    在使用mybatis框架时,第一步就需要产生SqlSessionFactory类的实例(相当于是产生连接池),通过调用SqlSessionFactoryBuilder类的实例的build方法来完成.下 ...

  5. Property &#39;sqlSessionFactory&#39; or &#39;sqlSessionTemplate&#39; are required

    之前一直用mybatis+mybatis-spring-1.1.1,系统升级mybatis使用后 mybatis-spring-1.2.2, 再其他配置均为改动的情况下执行出错: Property ' ...

  6. SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession作用域(Scope)和生命周期

    可以说每个MyBatis都是以一个SqlSessionFactory实例为中心的.SqlSessionFactory实例可以通过SqlSessionFactoryBuilder来构建.一是可以通过XM ...

  7. MyBatis源码解读(1)——SqlSessionFactory

    在前面对MyBatis稍微有点了解过后,现在来对MyBatis的源码试着解读一下,并不是解析,暂时定为解读.所有对MyBatis解读均是基于MyBatis-3.4.1,官网中文文档:http://ww ...

  8. Mybatis学习(二)常用对象SqlSessionFactory和SqlSession

    1.SqlSessionFactory SqlSeesionFactory对象是MyBatis的关键对象,它是一个数据库映射关系经过编译后的内存镜像. SqlSeesionFactory对象的实例可以 ...

  9. No bean named 'sqlSessionFactory' is defined

    其实程序给出这个错误已经很明确了,说你的sqlSessionFactory是未定义的. 首先你要查看一下自己的web.xml文件是否配置了application*.xml <!--设置sprin ...

  10. Spring Error : No unique bean of type [org.apache.ibatis.session.SqlSessionFactory] is defined

    报错信息:   Injection of autowired dependencies failed; nested exception is org.springframework.beans.fa ...

随机推荐

  1. HDU3338 Kakuro Extension —— 最大流、方格填数类似数独

    题目链接:https://vjudge.net/problem/HDU-3338 Kakuro Extension Time Limit: 2000/1000 MS (Java/Others)     ...

  2. MYSQL进阶学习笔记十:MySQL慢查询!(视频序号:进阶_23-24)

    知识点十一:MySQL 慢查询的应用(23) 一.慢查询定义 MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为慢查询. 查看时间限制 show variables lik ...

  3. jstl标签: c:Foreach详解

    为循环控制,它可以将集合(Collection)中的成员循序浏览一遍.运作方式为当条件符合时,就会持续重复执行的本体内容. 为循环控制,它可以将集合(Collection)中的成员循序浏览一遍.运作方 ...

  4. classname.this 和 this的使用场景

    今天在写代码时,发现在写了一个内部类,而在内部类中需要调用外部类的实例方法,直接使用this调用发现调用的不是外部类而是内部类,于是查找资料原来需要使用外部类的classname.this这样的调用, ...

  5. 「LuoguP4752」牧 Divided Prime(判质数

    Description 给定一个数字 A,这个 A 由 a1,a2,⋯,aN相乘得到. 给定一个数字 B,这个 B 由 b1,b2,⋯,bM相乘得到. 如果 A/B 是一个质数,请输出YES,否则输出 ...

  6. Map集合的几种遍历方式

    Map<String ,String> map=new HashMap<String,String>(); map.put("1","value1 ...

  7. "standard,singleTop,singleTask,singleInstance"-Android启动模式

    安卓有4种启动模式,下面我们就进行详细的讲解 用栈的思维去理解,就能理解这些启动模式的本质了 先设置两个页面: A(为测试对象),B两个页面,两个页面都有跳至对方的按钮 一.标准模式(standard ...

  8. margin-负值

    总结:margin负值的影响: 当元素(块级元素)没有设置宽度时:margin负值会增加元素的宽度,当设置宽度时,margin负值只会影响元素的位置. 就是负的边距好像能减小元素在文档流中的尺寸一样, ...

  9. linux 下 读取某个文件的某一行或者某几行

    wc -l  a.txt  统计a.txt 行数 查看文件a.txt的第190行到196行, sed -n '190,196p' a.txt  如果查看某一行用 sed -n 'a,bp' a.txt ...

  10. sql server2008配置管理工具服务显示远程过程调用失败

    SQL SERVER2008配置管理工具服务显示远程过程调用失败   前两天,装了VS2012后,打开SQL2008配置管理工具,发现SQL服务名称里什么也没有,只有一个提示:(如图) 上网搜了,试了 ...