一.SqlSession适用范围

(1).SqlSessionFactoryBuilder

通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory

将SqlSessionFactoryBuilder当成一个工具类使用,无需单例模式管理SqlSessionFactoryBuilder。

在需要创建SqlSessionFactory时,只需new一次SqlSessionFactoryBuilder即可。

  1. //mybatis配置文件
  2. String resource="SqlMapConfig.xml";
  3.  
  4. //得到配置文件
  5. InputStream inputStream=Resources.getResourceAsStream(resource);
  6.  
  7. //创建会话工厂,传入mybatis的配置文件信息
  8. SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);

(2)SqlSessionFactory

通过SqlSessionFactory创建SqlSession,使用单例模式管理SqlSessionFactory(工厂一旦创建,使用一个单例)

(MyBatis与Spring整合后,使用单例模式管理SqlSessionFactory)

  1. //通过工厂得到SqlSession
  2. SqlSession sqlSession=sqlSessionFactory.openSession();

(3)SqlSession

SqlSession是一个面向用户(软件工程师)的接口。

SqlSession中提供了许多操纵数据库的方法,如:

selectOne():返回单个对象

selectList():返回当个或多个对象

.....

SqlSession是线程不安全的,在SqlSession实现类中除了接口中的方法(操作数据库的方法),还有数据域属性。

SqlSession最佳应用场合在方法体内,定义成局部变量使用。

  1. //通过SqlSession操作数据库
  2. //第一个参数:映射文件中statement的id,等于:namespace+"."+statement的id
  3. //第二个参数:指定映射文件中的所匹配的parameterType类型的参数
    User user=sqlSession.selectOne("test.findUserById", 2);
  1. //删除用户
  2. sqlSession.delete("test.deleteUserById",2);
  1. //插入数据,后返回id
  2. sqlSession.insert("test.insertUserReturnId",user);
  1. //更新数据
  2. sqlSession.update("test.updateUserById",user);

06_关于SqlSession的更多相关文章

  1. java.lang.NoClassDefFoundError: org/apache/ibatis/session/SqlSession

    在配置一个springmvc+mybatis的项目时,总是有报一个错误: org.springframework.beans.factory.BeanCreationException: Error ...

  2. MyBatis的Dao层注入SqlSession

    有点坑爹,以前没用过Mybatis,最近才用,而且一直用Mybatis推荐的接口映射的方式,但是今天有人告诉我接口方式用得少,大多还是采用从配置文件里面读sql的方式,当然接口也是类似的,都是利用ma ...

  3. MyBatis 3与spring整合之使用SqlSession

    SqlSessionTemplate是MyBatis-Spring的核心.这个类负责管理MyBatis的SqlSession.调用MyBatis的SQL方法. SqlSessionTemplate是线 ...

  4. MyBatis Mapper 接口如何通过JDK动态代理来包装SqlSession 源码分析

    我们以往使用ibatis或者mybatis 都是以这种方式调用XML当中定义的CRUD标签来执行SQL 比如这样 <?xml version="1.0" encoding=& ...

  5. 异常:java.lang.UnsupportedOperationException: Manual close is not allowed over a Spring managed SqlSession

    使用mybatis-3.2.2.jar + mybatis-spring-1.2.0.jar集成时,报以下异常: 15:42:48.538 [Thread-1] DEBUG o.s.b.f.s.Dis ...

  6. MyBatis 入门到精通(一) 了解MyBatis获取SqlSession

    MyBatis是什么? MyBatis是一款一流的支持自定义SQL.存储过程和高级映射的持久化框架.MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去设置参数和获取检索结果.MyBatis ...

  7. 李洪强iOS开发Swift篇—06_流程控制

    李洪强iOS开发Swift篇—06_流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注 ...

  8. MyBatis 源码分析——SqlSession接口和Executor类

    mybatis框架在操作数据的时候,离不开SqlSession接口实例类的作用.可以说SqlSession接口实例是开发过程中打交道最多的一个类.即是DefaultSqlSession类.如果笔者记得 ...

  9. mybatis随笔三之SqlSession

    在上一篇文章我们已经得到了DefaultSqlSession,接下来我们对sqlSession.getMapper(DemoMapper.class)这种语句进行分析 @Override public ...

随机推荐

  1. 全面产品管理-从细微处认识"用户体验"

    转载: 让我以一个故事开始本文,我觉得这个故事能概括大多数人听到“用户体验”这个术语时的想法. 我经常访问的一个财经网站给我发了一封电子邮件,请求我点击里面的一个链接,对一些信息进行审核.所以我就点了 ...

  2. 使用C#模拟ASP.NET页面中按钮点击

    c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求 主要就组织要提交的数据,然后以post方式提交. 假设我们有如下的网页 1 <% @ Page Language = &q ...

  3. Codeforces Round #226 (Div. 2)B. Bear and Strings

    /* 题意就是要找到包含“bear”的子串,计算出个数,需要注意的地方就是不要计算重复. */ 1 #include <stdio.h> #include <string.h> ...

  4. strust1.x中formbean的原理及作用

    from:     http://blog.csdn.net/tuiroger/article/details/3947896 今天张老师讲了一些比较重要的strust标签,<html:link ...

  5. OS X: Keyboard shortcuts

    Using keyboard shortcuts To use a keyboard shortcut, press a modifier key at the same time as a char ...

  6. codis集群和redis cluster的优劣对比

    1.codis架构如下: (1)Codis是一整套缓存解决方案,包含高可用.数据分片.监控.动态扩态 etc..走的是 Apps->代理->redis cluster,一定规模后基本都采用 ...

  7. Android UI开发第三十三篇——Navigation Drawer For Android API 7

    Creating a Navigation Drawer中使用的Navigation Drawer的android:minSdkVersion="14",现在Android API ...

  8. tomcat安全配置之证书密码加密存储

    最近项目组要完成一个新Web Servicer接口的开发,其中有项要求是支持外部客户程序以https方式访问这些SOAP接口.项目组当前基于tomcat6.0.29开发,axis版本为1.4.拿到这个 ...

  9. [Javascript] Drawing Paths - Curves and Arcs

    window.onload = function() { var canvas = document.getElementById("canvas"), context = can ...

  10. [ES6] 21. ESNext, ES6-Shim & Node

    ES-Next: Esnextis similar to traceur, you can use command line to compile files. Install: npm instal ...