MyBatis——常用對象SqlSessionFactory和SqlSession


SqlSessionFactory
  SqlSessionFactory是單個數據庫映射關系經過編譯后的內存鏡像。SqlSessionFactory一旦被創建,在應用執行期間一直存在,建議使用單例模式。SqlSessionFactory是創建SqlSession的工廠。
      SqlSession openSession() 創建SqlSession對象

 


SqlSession
  SqlSession是執行持久化操作的對象,類似於JDBC中的Connection。它是應用程序與持久存儲層之間執行交互操作的一個單線程對象,也是MyBatis執行持久化操作的關鍵對象。SqlSession對象完全包含以數據庫為背景的所有執行SQL操作的方法,它底層封裝了JDBC連接,可以用SQLSession實例直接執行已映射的SQL語句。每個線程都有自己的SqlSession,SqlSession不能被共享,線程也不安全,使用完全之后需要關閉。
  方法: 參數statement:在配置文件中定義的<insert />元素的id;
         參數parameter:插入所需的參數,通常是對象或Map;
         參數rowBounds:RowBounds對象用於分頁,它的兩個屬性:offset指查詢的當前頁數,limit指當前頁數顯示多少條數據;
         參數mapKey:返回數據的其中一個列名;
         參數handler:ResultHandler對象用來處理查詢返回的復雜結果集,通常用於多表查詢;
      int insert(String statement) 插入方法
      int insert(String statement,Object parameter) 插入方法,返回執行sql語句影響的行數
      int update(String statement) 更新方法,返回執行sql語句影響的行數
      int update(String statement,Object parameter) 更新方法,返回執行sql語句影響的行數
      int delete(String statement) 刪除方法,返回執行sql語句影響的行數
      int delete(String statement,Object parameter) 刪除方法,返回執行sql語句影響的行數
      <T> T selectOne(String statement) 查詢方法,通常查詢結果只有一條數據時才使用
      <T> T selectOne(String statement,Object parameter) 查詢方法,通常查詢結果只有一條數據時才使用
      <E> List<E> selectList(String statement) 查詢方法,返回sql語句查詢結果的泛型對象的集合
      <E> List<E> selectList(String statement,Object parameter) 查詢方法,返回sql語句查詢結果的泛型對象的集合
      <E> List<E> selectList(String statement,Object parameter,RowBounds rowBounds) 查詢方法,返回sql語句查詢結果的泛型對象的集合
      <K,V> Map<K,V> selectMap(String statement,String mapKey) 查詢方法,返回一個Map集合,key是參數mapKey,value是封裝的對象
      <K,V> Map<K,V> selectMap(String statement,Object parameter,String mapKey) 查詢方法,返回一個Map集合,key是參數mapKey,value是封裝的對象
      <K,V> Map<K,V> selectMap(String statement,Object parameter,String mapKey,RowBounds rowBounds) 查詢方法,返回一個Map集合,key是參數mapKey,value是封裝的對象
      void select(String statement,ResultHandler handler) 查詢方法,通常用於多表查詢
      void select(String statement,Object parameter,ResultHandler handler) 查詢方法,通常用於多表查詢
      void select(String statement,Object parameter,RowBounds rowBounds,ResultHandler handler)查詢方法,通常用於多表查詢
      void commit() 提交事務
      void rollback() 回滾事務
      void close() 關閉SqlSession對象
      Connection getConnection() 獲得JDBC的數據庫連接對象
      <T> T getMapper(Class<T> type) 返回mapper接口的代理對象,該對象關聯了SQLSession對象,開發者可以通過該方法直接調用方法操作數據庫,參數type是Mapper的接口類型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM