mybatis學習筆記(2)-mybatis概述

mybatis學習筆記(2)-mybatis概述

標籤: mybatisjava


[TOC]git


本文對mybatis作一個簡單介紹,包括框架原理,執行過程,開發方法,輸入輸出映射以及動態sql,我會在後續的系列文章中一一詳細說明程序員

mybatis 介紹

mybatis是一個持久層的框架,是apache下的頂級項目。github

mybatis託管到goolecode下,再後來託管到github下(https://github.com/mybatis/mybatis-3/releases)。sql

mybatis讓程序將主要精力放在sql上,經過mybatis提供的映射方式,自由靈活生成(半自動化,大部分須要程序員編寫sql)知足須要sql語句。數據庫

mybatis能夠將向 preparedStatement中的輸入參數自動進行輸入映射,將查詢結果集靈活映射成java對象。(輸出映射)apache

框架原理

mybatis框架安全

mybatis框架圖

mybatis框架執行過程

一、配置mybatis的配置文件,SqlMapConfig.xml(名稱不固定) 二、經過配置文件,加載mybatis運行環境,建立SqlSessionFactory會話工廠(SqlSessionFactory在實際使用時按單例方式) 三、經過SqlSessionFactory建立SqlSession。SqlSession是一個面向用戶接口(提供操做數據庫方法),實現對象是線程不安全的,建議sqlSession應用場合在方法體內。 四、調用sqlSession的方法去操做數據。若是須要提交事務,須要執行SqlSession的commit()方法。 五、釋放資源,關閉SqlSessionmybatis

mybatis開發dao的方法

1.原始dao 的方法app

  • 須要程序員編寫dao接口和實現類
  • 須要在dao實現類中注入一個SqlSessionFactory工廠

2.mapper代理開發方法(建議使用)

只須要程序員編寫mapper接口(就是dao接口)。 程序員在編寫mapper.xml(映射文件)和mapper.java須要遵循一個開發規範:

  • mapper.xml中namespace就是mapper.java的類全路徑。
  • mapper.xml中statement的id和mapper.java中方法名一致。
  • mapper.xml中statement的parameterType指定輸入參數的類型和mapper.java的方法輸入參數類型一致
  • mapper.xml中statement的resultType指定輸出結果的類型和mapper.java的方法返回值類型一致。

SqlMapConfig.xml配置文件:能夠配置properties屬性、別名、mapper加載。

輸入映射和輸出映射

  • 輸入映射:

parameterType:指定輸入參數類型能夠簡單類型、pojo、hashmap。

對於綜合查詢,建議parameterType使用包裝的pojo,有利於系統 擴展。

  • 輸出映射:
    • resultType:查詢到的列名和resultType指定的pojo的屬性名一致,才能映射成功。
    • reusltMap:能夠經過resultMap 完成一些高級映射。若是查詢到的列名和映射的pojo的屬性名不一致時,經過resultMap設置列名和屬性名之間的對應關係(映射關係)。能夠完成映射。
      • 高級映射: 將關聯查詢的列映射到一個pojo屬性中。(一對一) 將關聯查詢的列映射到一個List<pojo>中。(一對多)

動態sql

  • 動態sql:(重點)
    • if判斷(掌握)
    • where
    • foreach
    • sql片斷(掌握)

做者@brianway更多文章:我的網站 | CSDN | oschina

相關文章
相關標籤/搜索