詳解關於mybatis的入門程序

首先咱們要下載mybatis的jar包,下載地址:github.com/mybatis/myb…java

下載最新的mybatis-3.4.4 release 版本,source code也可一併下載,方便之後看源碼。git


解壓後就是這些文件,lib下面主要存放的一些依賴包,好比顯示日誌的log4j,mybatis-3.4.4.jar就是核心包了。因而咱們新建一個java工程,將lib下面的jar包和核心包一塊兒導入工程,由於還要操做數據庫,因此別忘了你的數據庫驅動jar包。

上面解壓的文件中還有個很重要的文件mybatis-3.4.4.pdf,打開這個文件,你會發現這就是一個mybatis的基本操做手冊,結合以前我寫的mybatis的基本框架,咱們如今就能夠直接動手操做了。程序員

首先是全局配置文件SqlMapConfig.xml,配置數據源等信息。打開pdf,裏面有這麼一段github


直接將這段複製進XML文件中,稍做修改,本身定義一個db.properties文件,寫入數據庫的鏈接信息,再經過properties標籤引入便可。


mapper標籤引用的就是咱們以後主要編寫的mapper.xml的路徑。

在此以前,咱們還須要作點有用的事情,剛剛引用的lib中,有不少日誌相關的jar包,爲了咱們程序之後測試起來方便查看日誌,咱們要建一個log4j.properties文件,一樣在pdf中能找到以下內容面試


直接複製,將其中的ERROR改爲DEBUG便可,方便查看完整的日誌,跟蹤錯誤。

咱們今天先作一個簡單的查詢。新建一張user表,需求就是根據id查找用戶的信息。sql


而後新建user類,寫好get set 方法。

咱們用mapper代理的方式來開發,至關於Dao接口,需遵循如下規範才能自動生成mapper接口實現類的代理對象數據庫

在mapper.xml中的namespace等於mapper.java接口的地址
mapper.java中的方法名與mapper.xml中statement的id名一致
mapper.java中方法的輸入參數類型和mapper.xml中的parameterType指定的類型一致
mapper.java中方法的輸出結果類型和mapper.xml中的resultType指定的類型一致
mapper.java類名和mapper.xml映射文件名要一致,且須要在同一個目錄下
一切ok以後,咱們着重開始寫UserMapper.xml文件。參考pdf文件,很快咱們就能寫出下面的內容:session


其中namespace是命名空間,做用就是對sql進行分類管理,相互隔離,由於之後作項目確定是會有不少的sql語句的。採用mapper代理方式來操做數據庫,namespace須要指定爲接口文件的路徑。

id:標識映射文件中的sql,框架中提到底層會將sql語句封裝到 mappedStatement對象中,id也就是statement的id。mybatis

parameterType指定輸入參數的類型,這邊根據id來查找用戶,id是int型,因此填int,你也能夠填java.lang.Integerapp

resultType指定輸出結果所映射的java對象的類型。這邊根據id來查找用戶,返回的是一個用戶,因此填User的全路徑。

#{}是佔位符,待會測試代碼打出來的sql你會發現就是個?,其中的參數value表示要輸入的參數,由於這邊的parameterType是簡單類型int,因此#{}中你能夠填任意的參數名字。

接下來咱們就要寫UserMapper.java接口了,參照規範:


這樣按照框架流程,剩下的就是建立session,操做數據庫了,咱們寫個junit測試代碼


輸出結果:


看到打印出來的sql沒,#{value}是否是被替換爲「?」了。

這樣,整個流程就走完了,以上的內容根據上面提到的pdf就能照着寫出來,若是上面內容你都會了,就算入門了,是否是很簡單。不少時候,官方提供一些文檔可以很好的幫助咱們開發。後續繼續更新,記得關注哦。

想要朝這方面發展或者真心有興趣的。能夠找我要一些基礎的學習視頻,Q號碼:3300863615,這個是免費的,但願同窗找我要的時候不要有理所應當的態度,畢竟都是個人心血,但願你是真的有一顆想要學好java的心,我也會盡所能的去幫助你成爲一名優秀的程序員。

加我Q有如下幾個要求,不達標的勿擾:

一、大學學習的是Java相關專業,畢業後面試受挫,找不到對口工做能夠

二、在公司待久了,如今過得很安逸,但跳槽時面試碰壁。須要在短期內進修、跳槽拿高薪的

三、參加過線下培訓後,知識點掌握不夠深入,就業困難,想繼續深造

四、已經在Java相關部門上班的在職人員,對自身職業規劃不清晰,混日子的

五、有必定的C語言基礎,接觸過java開發,想轉行的

小號勿擾

相關文章
相關標籤/搜索