Mybatis 知識及運用(IDEA)

My

第一章:初始MyBatis

1.MyBatis簡介:(1)MyBatis 是一款優(yōu)秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。

? ? ? ? ? ? ? ? ? ? ? ? ?? (2)MyBatis ? 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。

? ? ? ? ? ? ? ? ? ? ? ? ?? (3)MyBatis? 可以使用簡單的 XML 或注解來配置和映射原生類型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 對象)為數據庫中的記錄。

2.MyBatis 的優(yōu)缺點和特點:

? ? ? ? ? (1) 特點:? mybatis是一種持久層框架,也屬于ORM映射。前身是ibatis。相比于hibernatehibernate為全自動化,配置文件書寫之后不需要書寫sql語句,但是欠缺靈活,很多時候需要優(yōu)化;mybatis為半自動化,需要自己書寫sql語句,需要自己定義映射。增加了程序員的一些操作,但是帶來了設計上的靈活,并且也是支持hibernate的一些特性,如延遲加載,緩存和映射等;對數據庫的兼容性比hibernate差。移植性不好,但是可編寫靈活和高性能的sql語句'y。

? ? ? ? ? (2)簡單易學:本身就很小且簡單。沒有任何第三方依賴,最簡單安裝只要兩個jar文件+配置幾個sql映射文件易于學習,易于使用,通過文檔和源代碼,可以比較完全的掌握它的設計思路和實現。

? ? ? ? ? (3)靈活:mybatis不會對應用程序或者數據庫的現有設計強加任何影響。 sql寫在xml里,便于統(tǒng)一管理和優(yōu)化。通過sql基本上可以實現我們不使用數據訪問框架可以實現的所有功能,或許更多。

? ? ? ? ? (4)解除sql與程序代碼的耦合:通過提供DAO層,將業(yè)務邏輯和數據訪問邏輯分離,使系統(tǒng)的設計更清晰,更易維護,更易單元測試。sql和代碼的分離,提高了可維護性。提供映射標簽,支持對象與數據庫的ORM字段關系映射,提供對象關系映射標簽,支持對象關系組建維護,提供XML標簽,支持編寫動態(tài)sql。

? ? ? ? ? (5)優(yōu)缺點:1).sql語句與代碼分離,存放于xml配置文件中:

優(yōu)點:便于維護管理,不用在java代碼中找這些語句;

缺點: JDBC方式可以用用打斷點的方式調試,但是Mybatis不能,需要通過log4j日志輸出日志信'y'M幫助調試,然后在配置文件中修改。

? ? ? ? ? ? ? 2).用邏輯標簽控制動態(tài)SQL的拼接:優(yōu)點:用標簽代替編寫邏輯代碼;

缺點:拼接復雜SQL語句時,沒有代碼靈活,拼寫比較復雜。不要使用變通的手段來應對這種復雜的語句。

? ? ? ? ? ? ? 3).查詢的結果集與java對象自動映射:優(yōu)點:保證名稱相同,配置好映射關系即可自動映射或者,不配置映射關系,通過配置列名=字段名也可完成自動映射。

缺點:對開發(fā)人員所寫的SQL依賴很強。

? ? ? ? ? ? ? 4).編寫原聲SQL:優(yōu)點:接近JDBC,比較靈活。

缺點:對SQL語句依賴程度很高;并且屬于半自動,數據庫移植比較麻煩,比如mysql數據庫編程Oracle數據庫,部分的sql語句需要調整。

3.MyBatis的環(huán)境搭建

?(1)首先創(chuàng)建一個maven工程,因為只涉及到后臺的數據處理,所以可以創(chuàng)建一個jar的工程項目,具體創(chuàng)建方法可以參考以下

(2)依賴包的引入。創(chuàng)建好maven項目之后,打開maven項目下的pom.xml文件,在配置文件中增加對mybatis包和mysql驅動包的依賴。在dependencies中增加對這兩個包的配置即可自動將這兩個包添加到項目中??梢酝ㄟ^maven倉庫查找對應的pom文件。


找到pom.xml


進行配置

(3)mybatis數據庫配置。對于mybatis框架來說,首先需要配置的就是數據庫的數據源配置以及采用何種開發(fā)模式的配置,對于mavne項目來說這些資源信息都需要配置在src/main/resources下面,對于普通的java項目則只需要配置在src下即可。

(4)mybatis-config.xml的配置。在src/main/resources/下創(chuàng)建一個名為mybatis-config的文件。在文件中需要配置resources數據庫資源文件,數據庫鏈接需要的driver驅動、url連接串、username數據庫用戶名、password數據庫密碼等。

(5).添加mapper類接口以及對應mapper.xml

接口

接口里寫對應的方法

添加對應mapper.xml

mapper.xml里面寫sql語句

(6)創(chuàng)建一個實體類對應數據字段,并在數據庫中創(chuàng)建對應的數據表


實體類


寫一個Mybatis的工具類

SqlSessionFactory對象一旦被創(chuàng)建,就會在整個應用運行過程中始終存在,在應用運行中不建議多次創(chuàng)建SqlSessionFactory,所以SqlSessionFactory最佳作用域是隨著應用的生命一同存在,并且創(chuàng)建一個工具類,能很好的避免多次創(chuàng)建帶來的代碼量以及相關問題



(7)編寫單元測試,通過sqlSession 操作數據庫



以上是Mybatis的簡單介紹,以及編寫Mybatis簡單項目的步驟,及知識點

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容