SqlSession 是Mybatis的核心接口之一,也是Mybatis 接口层的主要组成部分,对外提供常用的API。类图如下
在SqlSession中定义了常用数据库的操作以及事物的相关操作,为了方便用户使用,每种操作类型操作都提供了多种重载。
package org.apache.ibatis.session;import java.io.Closeable;import java.sql.Connection;import java.util.List;import java.util.Map;import org.apache.ibatis.cursor.Cursor;import org.apache.ibatis.executor.BatchResult;public interface SqlSession extends Closeable { // 定位到具体的SQL,返回值为查询结果对象T selectOne(String statement); // 定位到具体的SQL,传入参数 T selectOne(String statement, Object parameter); // 查询结果会有多条返回记录 List selectList(String statement); // 同上 List selectList(String statement, Object parameter); // 返回结果为Map Map selectMap(String statement, String mapKey); // Map selectMap(String statement, Object parameter, String mapKey); Map selectMap(String statement, Object parameter, String mapKey, RowBounds rowBounds); // 返回游标对象 Cursor selectCursor(String statement); Cursor selectCursor(String statement, Object parameter); Cursor selectCursor(String statement, Object parameter, RowBounds rowBounds); // 查询结果有此处指定的ResultHandler 对象处理 void select(String statement, Object parameter, ResultHandler handler); void select(String statement, ResultHandler handler); void select(String statement, Object parameter, RowBounds rowBounds, ResultHandler handler); // 执行插入语句 int insert(String statement); int insert(String statement, Object parameter); int update(String statement); int update(String statement, Object parameter); int delete(String statement); int delete(String statement, Object parameter); // 提交事务 void commit(); void commit(boolean force); // 回滚事务 void rollback(); void rollback(boolean force); // 刷新到数据库 List flushStatements(); // 关闭当前session @Override void close(); // 清空缓存 void clearCache(); // 获取Configuration 对象 Configuration getConfiguration(); // 获取 type 对应的mapper 对象 T getMapper(Class type); // 获取对应的数据库连接 Connection getConnection();}