MyBatis的接口層(一)

 

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();
}
相關文章
相關標籤/搜索