SqlSession 是Mybatis的核心接口之一,也是Mybatis 接口层的主要组成部分,对外提供经常使用的API。类图以下java
在SqlSession中定义了经常使用数据库的操做以及事物的相关操做,为了方便用户使用,每种操做类型操做都提供了多种重载。sql
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> T selectOne(String statement); // 定位到具体的SQL,传入参数 <T> T selectOne(String statement, Object parameter); // 查询结果会有多条返回记录 <E> List<E> selectList(String statement); // 同上 <E> List<E> selectList(String statement, Object parameter); // 返回结果为Map <K, V> Map<K, V> selectMap(String statement, String mapKey); // <K, V> Map<K, V> selectMap(String statement, Object parameter, String mapKey); <K, V> Map<K, V> selectMap(String statement, Object parameter, String mapKey, RowBounds rowBounds); // 返回游标对象 <T> Cursor<T> selectCursor(String statement); <T> Cursor<T> selectCursor(String statement, Object parameter); <T> Cursor<T> 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<BatchResult> flushStatements(); // 关闭当前session @Override void close(); // 清空缓存 void clearCache(); // 获取Configuration 对象 Configuration getConfiguration(); // 获取 type 对应的mapper 对象 <T> T getMapper(Class<T> type); // 获取对应的数据库链接 Connection getConnection(); }