MyBatis 本是apache的一個開源項目iBatis,2010年這個項目由apache software foundation 遷移到了google code,而且更名爲MyBatis 。2013年11月遷移到Github。
MyBatis是一個優秀的持久層框架,它對jdbc的操做數據庫的過程進行封裝,使開發者只須要關注SQL自己,而不須要花費精力去處理例如註冊驅動、建立connection、建立statement、手動設置參數、結果集檢索等jdbc繁雜的過程代碼。
Mybatis經過xml或註解的方式將要執行的各類statement(statement、
preparedStatemnt)配置起來,並經過java對象和statement中的sql進行映射生成最終執行的sql語句,最後由mybatis框架執行sql並將結果映射成java對象並返回。
總之,Mybatis對JDBC訪問數據庫的過程進行了封裝,簡化了JDBC代碼,解決JDBC將結果集封裝爲Java對象的麻煩。
以上是mybatis的官方解釋,下面是我我的的理解(不對的請評論區留言哦)。
所謂mybatis就是底層封裝了jdbc簡化了代碼利用框架來鏈接數據庫並對其進行操做。java
<configuration ></onfiguration > : MyBatis的全局配置文件 sql
evironments 標籤:該標籤內部能夠配置多個environment,即多種環境,每種環境能夠作不一樣配置或鏈接不一樣數據庫。例如,開發、測試、生產環境可能須要不一樣的配置,鏈接的數據庫可能也不相同,所以咱們能夠配置三個environment,分別對應上面三種不一樣的環境。數據庫
可是要記住,environment能夠配置多個,可是最終要使用的只能是其中一個!
environment 標籤:內部能夠配置多種配置信息,下面介紹事務管理配置和數據源配置。apache
transactionManage 標籤:事務管理配置,mybatis中有兩種事務管理方式,也就是type="[JDBC|MANAGED]mybatis
dataSource
標籤:數據源,也就是鏈接池配置。這裏type指定數據源類型,有三種內建的類型:JNDI、POOLED、UNPOOLEDapp
mappers
標籤:用於導入mapper文件的位置,其中能夠配置多個mapper,便可以導入多個mapper文件。框架
(1)第1行是xml的文檔聲明,用於聲明xml的版本和編碼測試
(2)第二、三、4行,引入了xml約束文檔,當前xml文檔將會按照mybatis-3-mapper.dtd文件所要求的規則進行書寫。google
(3)Mapper標籤:根標籤,其中namespace(名稱空間,也叫命名空間),要求不能重複。在程序中經過【namespace + id 】定位到要執行哪一條SQL語句編碼
(4)select標籤:用於指定未來要執行的各類SQL語句。標籤上能夠聲明屬性,下面介紹經常使用的屬性:id、resultType、resultMap
簡而言之,resultType控制查詢SQL執行後返回值的類型或集合中的泛型,例如查詢emp表中的單條記錄,返回值是一個Emp對象,所以,resultType="com.tedu.pojo.Emp";
若是查詢emp表中的多條記錄,返回值是一個List<Emp>,此時resultType的值應該集合中的泛型,所以resultType="com.tedu.pojo.Emp";