SqlSession到底是什么呢?
下文笔者讲述SqlSession的简介说明,如下所示
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的接口类型
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


