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的接口类型
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。