SqlSessionFactory

源码:

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即可解决

时间: 2024-10-06 22:04:18

SqlSessionFactory的相关文章

Maven Web项目配置Mybatis出现SqlSessionFactory错误的解决方案

一.错误现象 [html] view plain copy 严重: Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.mybatis.spring.mapper.MapperScannerConfigurer#0' defined in URL [file:/F:/Workspaces/.metadata

Java框架篇---Mybatis 构建SqlSessionFactory

从 XML 中构建 SqlSessionFactory 基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的.SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得.而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例. 从 XML 文件中构建 SqlSessionFactory

spring整合mybatis遇到的bug java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

出bug的原因:mybatis-spring版本问题. 查看SqlSessionDaoSupport源码 1.2以上的版本: 1.1.1版本: 解决方法:1.2版本移除了@Autowired的注解,所以如果是1.2版本以上,要在BaseDaoImpl里面手动 注入SetSessionTemplate或者SetSessionFactory spring整合mybatis遇到的bug java.lang.IllegalArgumentException: Property 'sqlSessionFa

MyBatis源码解读(1)——SqlSessionFactory

在前面对MyBatis稍微有点了解过后,现在来对MyBatis的源码试着解读一下,并不是解析,暂时定为解读.所有对MyBatis解读均是基于MyBatis-3.4.1,官网中文文档:http://www.mybatis.org/mybatis-3/zh/getting-started.html,MyBatis-3.4.1.jar. 本应在开始读MyBatis源码时首先应该了解下MyBatis的SqlSession的四大对象:Executor.StatemenHandler.ParameterHa

Spring整合Mybatis解决 Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

在Spring4和Mybatis3整合的时候,dao层注入'sqlSessionFactory'或'sqlSessionTemplate'会报错解决办法如下: package com.alibaba.webx.MyWebxTest.myWebX.module.dao.impl; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionTemplate; import org.m

【转载】关于SqlSessionFactoryBuilder SqlSessionFactory SqlSession的作用范围

1 SqlSessionFactoryBuilder:这个类可以被实例化,使用和丢弃.一旦你创建了SqlSessionFactory后,这个类就不需要存在了.因此SqlSessionFactoryBuilder实例的最佳范围是方法范围(也就是本地方法变量).你可以重用SqlSessionFactoryBuilder来创建多个SqlSessionFactory实例,但是最好的方式是不需要保持它一直存在来保证所有XML解析资源,因为还有更重要的事情要做. 2 3 SqlSessionFactory:

mybatis源码分析(1)-----sqlSessionFactory创建

1. 首先了解一下mybatis,包含核心jar ,以及spring相关jar. <!-- Mybatis相关组件 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0</version> </dependency> <dependency> <

SqlSessionFactory创建SqlSession的过程

SqlSessionFactory接口中声明了一系列opensession方法,用来返回SqlSession对象. 而DefaultSqlSessionFactory是他的实现类,实现了其中的方法. 如下: public SqlSession openSession() { return openSessionFromDataSource(configuration.getDefaultExecutorType(), null, false); } 其中openSessionFromDataSo

mybatis SqlSessionFactory工厂模式

一.工厂方法模式实现sqlsession (从别人博客复制的图) 1.Sqlsession接口 在sqlsession接口中包含了所有可能执行的sql语句.而Defaultsqlsession是他的实现类,实现了其中的方法. 1 public interface SqlSession extends Closeable { 2 3 /** 4 * Retrieve a single row mapped from the statement key 5 * @param <T> the ret