我們之前學習了JDBC和連接池之後,攻城獅們對編程的效率仍然不是很滿意。於是乎!有了今天更加優秀的內容,那就是Mybatis框架。它的出現解決了jdbc中的一些問題,提升了代碼的魯棒性。我們一起來看一下吧~
Mybatis介紹
Mybatis是在2010年由阿帕奇下的開源項目ibatis遷移到谷歌codde後,更改為mybatis。
這是一個十分好用的持久層的框架,我們能過通過這種框架實現對jdbc操作的數據庫進行封裝,我們只需要關心我們數據庫SQL本身就可以了,不用麻煩的去註冊驅動,連接數據庫等複雜的過程。
在這裡,其主要是用來xml來執行我們一寢的配置,通過java對象和statement中的sql映射生成我們最終想要的SQL語句,最後,我們 由mybatis框架執行sql語句和將結果映射成java對象返回即可。
Mybatis架構(牢記)
1、 mybatis配置 文件
在上圖中我們可以看到最上面的SqlMapConfig.xml,這個配置文件是我們的全局配置文件,我們其中可以配置mybatis的運行環境等等,而mapper.xml文件就是我們說的sql映射文件,我們在此文件中配置了sql語句,執行的時候此文件還需要在全局配置文件中加載。
2、 通過配置等一些的信息,我們可以構造出SqlSessionFactory(會話工廠)
3、 通過會話工廠創建sqlSession(會話),我們操作的sql就是通過sqlSession執行的。
4、 mybatis的底層自定義了Executor執行器接口操作數據庫
5、 Mapped Statement,它封裝了mybatis的一些配置信息和sql映射信息等等。mapper.xml文件中我們每一個sql都對應著一個Mapped Statement對象。
Mybatis入門程序
先給大家看一下,所有代碼文件的佈局。下面的步驟,我們按照這些去補全。
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的配置文件,我們通過
其中主要的配置信息大概是這個樣子的,
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對象返回即可。需要我們修改的地方,其實就是這兩處,是不是更加的快人一步。
個人原創,有什麼補充請多多指教,我們都是愛學習的孩子。 明天我們繼續細化內容,私信“Mybatis”獲取代碼。
有幫助到大家的話,記得點關注喲~
感謝堅持關注的朋友~
世界很大,幸好有你~
歡迎在評論區留下你的問題或困惑,我將每天與你分享我的觀點和心得。
聚焦最新科技諮訊,探尋未來智能領域,我是Mario女陶。
閱讀更多 女陶愛柚子 的文章