咱們以前學習了JDBC和鏈接池以後,攻城獅們對編程的效率仍然不是很滿意。因而乎!有了今天更加優秀的內容,那就是Mybatis框架。它的出現解決了jdbc中的一些問題,提高了代碼的魯棒性。咱們一塊兒來看一下吧~java
Mybatis是在2010年由阿帕奇下的開源項目ibatis遷移到谷歌codde後,更改成mybatis。git
這是一個十分好用的持久層的框架,咱們能過經過這種框架實現對jdbc操做的數據庫進行封裝,咱們只須要關心咱們數據庫SQL自己就能夠了,不用麻煩的去註冊驅動,鏈接數據庫等複雜的過程。github
在這裏,其主要是用來xml來執行咱們一寢的配置,經過java對象和statement中的sql映射生成咱們最終想要的SQL語句,最後,咱們 由mybatis框架執行sql語句和將結果映射成java對象返回便可。sql
一、 mybatis配置 文件數據庫
在上圖中咱們能夠看到最上面的SqlMapConfig.xml,這個配置文件是咱們的全局配置文件,咱們其中能夠配置mybatis的運行環境等等,而mapper.xml文件就是咱們說的sql映射文件,咱們在此文件中配置了sql語句,執行的時候此文件還須要在全局配置文件中加載。apache
二、 經過配置等一些的信息,咱們能夠構造出SqlSessionFactory(會話工廠)編程
三、 經過會話工廠建立sqlSession(會話),咱們操做的sql就是經過sqlSession執行的。mybatis
四、 mybatis的底層自定義了Executor執行器接口操做數據庫架構
五、 Mapped Statement,它封裝了mybatis的一些配置信息和sql映射信息等等。mapper.xml文件中咱們每個sql都對應着一個Mapped Statement對象。app
先給你們看一下,全部代碼文件的佈局。下面的步驟,咱們按照這些去補全。
1.下載jar包
下載地址 https://github.com/mybatis/mybatis-3/releases
在這個包裏面咱們能夠看到,第一個是其依賴包,第三個是其核心包。
2.環境搭建
首先,咱們先新建一個項目工程,新建lib,將咱們上面的核心包和依賴包所有加入到項目中,除此以外,不要忘了還有咱們的數據庫的驅動包也要添加進來(參考開篇文章)。具體的效果以下圖。
3.加入配置文件
咱們新建一個資源文件包,並在其中加入3個配置文件。
3.1配置文件log4j.properties(日誌信息)
對於日文件咱們直接拷貝便可。
# Global logging configurationlog4j.rootLogger=DEBUG, stdout# Console output...log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
3.2配置文件 db.properties
咱們經過key,value的形式來配置加載數據庫的鏈接。
3.3配置文件SqlMapConfig.xml
上面圖片就是一個.xml的配置文件,咱們經過<properties>將數據庫鏈接的文件加載進來,經過typeAlias修一下咱們過長的類型,再往下就是加載咱們的數據庫信息了。
其中主要的配置信息大概是這個樣子的,
3.封裝pojo
咱們的數據庫是這麼定義的。
像之前同樣咱們將咱們使用的字段進行封裝,獲取get,set方法,tostring方法。
4.Mapper.xml(映射文件)
接下來,咱們須要定義一個mapper映射文件UserMapper.xml,具體的效果圖以下所示。這個文件其實就是存咱們各類sql語句的。
具體內容是,這裏咱們定義了3個SQL語句,分別是查詢用戶和保存用戶信息的sql語句。
5.UserMapper(接口文件)
內容以下,咱們定義了3個接口,分別表示咱們以後實現的方法。
6.加載UserMapper.xml文件
7.測試
測試的時候,就是咱們要按照最上面的流程圖一次進行,這裏須要你們寫的地方只有紅框中的內容,咱們只演示經過id查詢。代碼圖以下。
完成以後,咱們的代碼也就寫完了。咱們將類名選中後,點擊右鍵run as經過測試來運行代碼。
打印完成以後,你們會看到好多行運行結果,這不是錯誤,是咱們以前設置的日誌文件,咱們仔細查看,便能找到咱們的結果。
上面就是咱們介紹的開源的優秀的持久層框架Mybatis,咱們在加入jar包後,咱們添加3個配置文件用來加載數據庫,封裝完數據。
咱們只須要在UserMapper.xml文件中添加sql語句,即可以經過mybatis框架執行sql語句和將結果映射成java對象返回便可。須要咱們修改的地方,其實就是這兩處,是否是更加的快人一步。