SqlSession介绍
SqlSession是MyBatis的关键对象,是执行持久化操作的对象,类似于JDBC中的Connection。
它是应用程序与持久存储层之间执行交互操作的一个单线程对象,也是MyBatis执行持久化操作的关键对象。
SqlSession对象完全包含以数据库为背景的所有执行SQL操作的方法,它的底层封装了JDBC连接,可以用SqlSession实例来直接执行已映射的SQL语句。
每个线程都应该有它自己的SqlSession实例。SqlSession的实例不能被共享,也是线程不安全的,绝对不能将SqlSession 实例的引用放在一个类的静态字段甚至是实例字段中。也绝不能将SqlSession实例的引用放在任何类型的管理范围中,比如Serlvet当中的HttpSession 对象中。使用完SqlSession之后关闭Session很重要,应该确保使用finally块来关闭它。
SqlSession 的常用方法如下:
(1)int insert(String statement)。插入方法,参数statement是在配置文件中定义的<insert.../>元素的id,返回执行SQL语句所影响的行数。
(2)int insert(String statement,Object parameter)。插入方法,参数statement是在配置文件中定义的<insert.../>元素的id,parameter是插入所需的参数,通常是对象或者Map,返回执行SQL语句所影响的行数。
(3)int update(String statement) 。更新方法,参数statement是在配置文件中定义的<update.../>元素的id,返回执行SQL语句所影响的行数。
(4)int update(String statement,Object parameter)。更新方法,参数statement是在配置文件中定义的<update.../>元素的id,parameter 是插入所需的参数,通常是对象或者Map,返回执行SQL语句所影响的行数。
(5)int delete(String statement) 。删除方法,参数statement是在配置文件中定义的<delete.../>元素的id。返回执行SQL 语句所影响的行数。
(6)int delete(String statement,Object parameter)。删除方法,参数statement 是在配置文件中定义的<delete.../>元素的id,parameter 是插入所需的参数,通常是对象或者Map,返回执行SQL语句所影响的行数。
(7)<T> T selectOne(String slatement)。查询方法,参数statement是在配置文件中定义的<select.../>元素的id,返回执行SQL语句查询结果的泛型对象,通常查询结果只有一条数据时才使用。
(8)<T> T selectOne(String statement,Object parameter)。查询方法,参数statement是在配置文件中定义的<select.../>元素的id,parameter是查询所需的参数,通常是对象或者Map,返回执行SQL语句查询结果的泛型对象,通常查询结具只有一条数据时才使用。
(9)<E> List<E> selectList(String statemenl)。查询方法,参数是在配置文件中定义的<select.../>素的id,返回执行SQL话句查询结果的泛型对象的集合。
(10)<E> List<E> selectList(String statement,Object parameter)。杳洵方法,参数statement是在配置文件中定义的<select../>元素的id,parameter 是查询所需的参数,通常是对象或者Map,返回执行SQL语句查询结果的泛型对象的集合。
(11)<E> List<E> selectList(String statement,Object parameter,RowBounds rowBounds)。查询方法,参数statement是在配置文件中定义的<select.../>元素的id,parameter是查询所需的参数,通常是对象或者Map,RowBounds对象用于分页,它的两个属性: offset指查询的当前页数; limit指当前页显示多少条数据。返回执行SQL语句查询结果的泛型对象的集合。
(12)<K,V> Map<K,V> selectMap(String statement,String mapKey) 。查询方法,参数statement是在配置文件中定义的<select.../>元素的id,mapKey是返回数据的其中一个列名,执行SQL语句查询结果将会被封装成一个Map集合返回,key就是参数mapKey传入的列名,value 是封装的对象。
(13)<K,V> Map<K,V> selectMap(String statement,0bject parameler,Sting mapKey)。查询方法,参数statement是在配置文件中定义的<select.../>元素的id,parameter是查询所需的参数,通常是对象或者Map,mapKey 是返回数据的其中一个列名,执行SQL语句查询结果将会被封装成一个Map集合返回,key就是参数mapKey传入的列名,value是封装的对象。
(14)<K,V> Map<K,V>selectMap(Sting statement,Object parameter,Sting mapKey,RowBounds rowBounds)。查询方法,参数statement 是在配置文件中定义的<select.../>元素的id,parameter 是否询所需的参数,通常是对象或者Map,mapKey 是返回数据的其中一个列名,RowBounds 对象用于分页。执行SQL 语句查询结果将会被封装成一个Map集合返回,key就是参数mapKey传入的列名,value 是封装的对象。
(15)void select(String statement,ResultHandler handler)。查询方法,参数statement是在配置文件中定义的<select../>元素的id,ResultHandler对象用来处理查询返回的复杂结果集,通常用于多表查询。
(16)void select(String statement,Object parameter,ResultHander handler)。查询方法,参数statement是在配置文件中定义的<select../>元素的id,parameter 是查询所需的参数,通常是对象或者Map, ResultHandler对象用来处理查询返回的复杂结果集,通常用于多表查询。
(17)void select(String statement,Object parameter,RowBounds rowBounds,ResultHandrhandler)。查询方法,参数statement是在配置文件中定义的<selec.../>元素的id,是查询所需的参数,通常是对象或者Map,RowBounds 对象用于分页,parameter
ResultHandler对象用来处理查询返回的复杂结果集,通常用于多表查询。
(18)void commit()。提交事务。
(19)void rollback()。回滚事务。
(20)void close()。关闭SqlSession对象。
(21)Connection getConnection()。获得JDBC的数据库连接对象。
(22)<T> T getMapper(Class<T> type)。返回mapper接口的代理对象,该对象关联了SqlSession对象,开发者可以通过该对象直接调用方法操作数据库,参数type是Mapper的接口类型。Mybatis官方手册建议通过mapper对象访问MyBatis。
SqlSession介绍的更多相关文章
- MyBatis常用对象SqlSessionFactory和SqlSession介绍和运用
学习框架一个比较好的路径阅读源码.本文介绍的SqlSessionFactory和SqlSession.可以通过了解SqlSessionFactory接口和SqlSession接口以及两个的实现类入手, ...
- mybatis的执行流程
1.SqlSessionFactoryBuilder与SqlSessionFactory 我们一般在使用mybatis是都会通过new SqlSessionFactoryBuilder.build(. ...
- [原创]关于mybatis中一级缓存和二级缓存的简单介绍
关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...
- Spring-data-jpa详解,全方位介绍。
本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求.这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring ...
- 【原创】纯干货,Spring-data-jpa详解,全方位介绍。
本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求.这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring ...
- Mybatis拦截器介绍
拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法.Mybatis拦截器设计的一个初 ...
- 纯干货,Spring-data-jpa详解,全方位介绍
本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求.这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring ...
- MyBatis 源码分析——介绍
笔者第一次接触跟MyBatis框架是在2009年未的时候.不过那个时候的他并不叫MyBatis,而是叫IBatis.2010年的时候改为现在的名字--MyBatis.这几年过去了,对于笔者来讲有一点陌 ...
- MyBatis源码解读(4)——SqlSession(上)
在上一篇博客中提到MyBatis是如何实现代理类MapperProxy,并抛出了一个问题--是怎么执行一个具体的sql语句的,在文末中提到了MapperMethod的execute采用命令模式来判断是 ...
随机推荐
- python3 + selenium 运行过程中进行截图
使用driver.get_screenshot_as_file方法("D:/aaac.png")括号中为需要存放的路径及图片名称 from selenium import webd ...
- python全栈开发day32-进程创建,进程同步,进程间的通信,进程池
一.内容总结 1.进程创建 1) Process:两种创建一个新进程的方法: 1.实例化Process,通过args=(,)元组形式传参,2创建类继承Process,类初始化的时候传参数 2) p.j ...
- Python 打印当前文件相对路径和绝对路径
一.打印相对路径 print(__file__) 二.打印绝对路径 import os print(os.path.abspath(__file__)) 三.打印文件名 import os print ...
- php 代码中的箭头“ ->”是什么意思
类是一个复杂数据类型,这个类型的数据主要有属性.方法两种东西. 属性其实是一些变量,可以存放数据,存放的数据可以是整数.字符串,也可以是数组,甚至是类. 方法实际上是一些函数,用来完成某些功能. 引用 ...
- 高德地图web端笔记;发送http请求的工具类
1.查询所有电子围栏 package com.skjd.util; import java.io.BufferedReader; import java.io.InputStream; import ...
- JVM GC-----2、垃圾标记算法(一)
在上一篇文章中,我介绍了关于GC机制中,GC在确认垃圾对象后,是如何回收这些垃圾对象的几种算法.现在介绍下GC机制一般是如何定位(或者叫做标记)出这些垃圾对象的.我们先来问下自己,如何判介绍了断一个对 ...
- Linux学习之Vim/Vi使用(十三)
Linux学习之Vim/Vi使用 Vim/Vi简介 Vim/Vi工作模式 Vim/Vi基本使用 Vim/Vi应用技巧 Vim/Vi简介 Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UN ...
- setting.xml配置文件
在此,简单的说下. setting.xml 和 pom.xml这两各配置文件,到此是怎样? setting.xml setting.xml,这个配文件,是全局的. 比如你的是构建,web项目.我的是 ...
- Spring Boot 项目实战(三)集成 Swagger 及 JavaMelody
一.前言 上篇介绍了 Logback 的集成过程,总体已经达到了基本可用的项目结构.本篇主要介绍两个常用工具,接口文档工具 Swagger .项目监控工具 JavaMelody 的集成步骤. 二.Sw ...
- codeforces-1111
https://www.cnblogs.com/31415926535x/p/10397007.html codeforces 537 div2 A 题意就是给你两个字符串,然后如果s,t的对应位上的 ...