産品特色
編輯推薦
適讀人群 :Java、Java持久層框架 本書開創國內對MyBatis技術應用的探索先河。本書首先是基於官方文檔論述的完善和具體實例的補充,並且詳細闡述瞭MyBatis內部運行原理和插件開發過程,同時教你整閤開發MyBatis-Spring項目。
沒有味同嚼蠟的理論說教,隻有實實在在的方法應用,幫助你在一綫工作中用好MyBatis。
內容簡介
隨著大數據時代的到來,Java持久層框架MyBatis已經成為越來越多企業的選擇。遺憾的是,時至今日國內依然沒有一本討論MyBatis的書,這增加瞭初學者的學習難度,初學者往往隻能基於零星的案例來學習MyBatis,無法係統地掌握MyBatis,更不用說精通瞭。《深入淺齣MyBatis技術原理與實戰》是筆者通過大量實踐和研究源碼後創作而成的,是國內係統介紹MyBatis著作的先河。
《深入淺齣MyBatis技術原理與實戰》分為3個部分,依次介紹瞭MyBatis的基礎應用、原理及插件開發、實踐應用,使讀者能夠由淺入深、循序漸進地掌握MyBatis技術。首先,《深入淺齣MyBatis技術原理與實戰》在官方API的基礎上完善瞭許多重要的論述和實例,並且給齣瞭實操建議,幫助讀者正確掌握MyBatis。其次,《深入淺齣MyBatis技術原理與實戰》詳細講述瞭MyBatis的內部運行原理,並全麵討論瞭插件的開發。最後,本著學以緻用的原則,筆者闡述瞭MyBatis-Spring項目和一些MyBatis開發常見的實例,使讀者能夠學得會,用得好。
《深入淺齣MyBatis技術原理與實戰》不是一本味同嚼蠟的理論專著,而是一本MyBatis的實踐指南,無論你是Java程序員、MyBatis開發者,還是Java持久層框架的研究者,你都能從本書中收獲知識。
作者簡介
楊開振,長期從事Java開發工作,擁有近十年的Java開發經驗,目前就職於一傢互聯網金融公司,擔任互聯網軟件開發職位。
IT技術的狂熱愛好者,熱衷於Java互聯網方嚮的軟件技術開發與研究。
熟練掌握Java基礎、軟件開發設計模式和數據庫相關知識,對Spring、MyBatis等主流Java開源框架有深入研究。
目錄
第1 章 MyBatis 簡介 1
1.1 傳統的JDBC 編程 1
1.2 ORM 模型 4
1.3 Hibernate 4
1.4 MyBatis 9
1.5 什麼時候用MyBatis 12
第2 章 MyBaits 入門 13
2.1 開發環境準備.13
2.1.1 下載MyBatis 13
2.1.2 搭建開發環境 14
2.2 MyBatis 的基本構成 15
2.2.1 構建SqlSessionFactory 15
2.2.2 創建SqlSession19
2.2.3 映射器 21
2.3 生命周期.26
2.3.1 SqlSessionFactoryBuilder 27
2.3.2 SqlSessionFactory 27
2.3.3 SqlSession 27
2.3.4 Mapper 28
2.4 實例 28
第3 章 配置 37
3.1 properties 元素 38
3.1.1 property 子元素.38
3.1.2 properties 配置文件 39
3.1.3 程序參數傳遞 39
3.1.4 優先級 40
3.2 設置 41
3.3 彆名 44
3.3.1 係統定義彆名 44
3.3.2 自定義彆名 47
3.4 typeHandler 類型處理器.48
3.4.1 係統定義的typeHandler 49
3.4.2 自定義typeHandler 51
3.4.3 枚舉類型typeHandler55
3.5 ObjectFactory 62
3.6 插件 65
3.7 environments 配置環境 65
3.7.1 概述65
3.7.2 數據庫事務 66
3.7.3 數據源 67
3.8 databaseIdProvider 數據庫廠商標識 68
3.8.1 使用係統默認規則 68
3.8.2 不使用係統默認規則69
3.9 引入映射器的方法 71
第4 章 映射器 73
4.1 映射器的主要元素 73
4.2 select 元素 74
4.2.1 概述74
4.2.2 簡易數據類型的例子75
4.2.3 自動映射.76
4.2.4 傳遞多個參數 78
4.2.5 使用resultMap 映射結果集 81
4.3 insert 元素 82
4.3.1 概述82
4.3.2 主鍵迴填和自定義 83
4.4 update 元素和delete 元素 85
4.5 參數 85
4.5.1 參數配置.86
4.5.2 存儲過程支持 86
4.5.3 特殊字符串替換和處理(#和$) 87
4.6 sql 元素 88
4.7 resultMap 結果映射集 89
4.7.1 resultMap 元素的構成 89
4.7.2 使用map 存儲結果集91
4.7.3 使用POJO 存儲結果集 91
4.7.4 級聯92
4.8 緩存cache 113
4.8.1 係統緩存(一級緩存和二級緩存) 113
4.8.2 自定義緩存 117
第5 章 動態SQL 119
5.1 概述119
5.2 if 元素 120
5.3 choose、when、otherwise 元素 120
5.4 trim、where、set 元素 121
5.5 foreach 元素 123
5.6 test 的屬性 124
5.7 bind 元素125
第6 章 MyBatis 的解析和運行原理 127
6.1 涉及的技術難點簡介 128
6.1.1 反射技術129
6.1.2 JDK 動態代理.130
6.1.3 CGLIB 動態代理 133
6.2 構建SqlSessionFactory 過程134
6.2.1 構建Configuration 135
6.2.2 映射器的內部組成 136
6.2.3 構建SqlSessionFactory 138
6.3 SqlSession 運行過程 138
6.3.1 映射器的動態代理 138
6.3.2 SqlSession 下的四大對象.142
6.3.3 SqlSession 運行總結150
第7 章 插件.152
7.1 插件接口152
7.2 插件的初始化153
7.3 插件的代理和反射設計154
7.4 常用的工具類——MetaObject 157
7.5 插件開發過程和實例 159
7.5.1 確定需要攔截的簽名 159
7.5.2 實現攔截方法.161
7.5.3 配置和運行 162
7.5.4 插件實例163
7.6 總結166
第8 章 MyBatis-Spring 168
8.1 Spring 的基礎知識.168
8.1.1 Spring IOC 基礎 169
8.1.2 Spring AOP 基礎 171
8.1.3 Spring 事務管理 173
8.1.4 Spring MVC 基礎 179
8.2 MyBatis-Spring 應用 181
8.2.1 概述 181
8.2.2 配置SqlSessionFactory 182
8.2.3 配置SqlSessionTemplate 184
8.2.4 配置Mapper 188
8.2.5 配置事務190
8.3 實例191
8.3.1 環境準備191
8.3.2 文件目錄193
8.3.3 Spring 配置文件 194
8.3.4 MyBatis 框架相關配置 198
8.3.5 配置服務層 205
8.3.6 編寫控製器 209
8.3.7 測試 210
8.4 總結210
第9 章 實用的場景 212
9.1 數據庫BLOB 字段讀寫 212
9.2 批量更新215
9.3 調用存儲過程217
9.3.1 存儲過程in 和out 參數的使用217
9.3.2 存儲過程遊標.220
9.4 分錶225
9.5 分頁227
9.5.1 RowBounds 分頁 227
9.5.2 插件分頁229
9.6 上傳文件到服務器239
9.7 在映射中使用枚舉247
9.8 多對多級聯 249
9.9 總結253
附錄A 數據庫模型描述與級聯學生關係建錶語句.254
前言/序言
隨著手機、平闆電腦等移動終端的廣泛應用,移動互聯網時代已經到來。在這個時代裏,構建一個高效的平颱並提供服務是移動互聯網的基礎,在眾多的網站服務中,使用Java構建網站的不在少數。移動互聯網的特點是大數據、高並發,對服務器往往要求分布式、高性能、高靈活等,而傳統模式的Java數據庫編程框架已經不再適用瞭。在這樣的背景下,一個Java的持久框架MyBatis走入瞭我們的世界,它以封裝少、高性能、可優化、維護簡易等優點成為瞭目前Java移動互聯網網站服務的首選持久框架,它特彆適閤分布式和大數據網絡數據庫的編程。
本書主要講解瞭MyBatis的應用。從目前的情況來看,國內圖書市場上沒有介紹MyBatis的書籍,有的隻是官方的API和少數的幾篇博客文章,國外圖書市場上的這類書籍也是鳳毛麟角,這使得係統學習MyBatis睏難重重。官方的API隻是簡單介紹瞭MyBatis有些什麼功能和一些基本的使用方法,沒有告訴我們如何用好,其中原理是什麼,需要注意哪些問題,這顯然是不夠的。有些博客雖然講解得比較深入,但是內容支離破碎,沒有形成一個完整的知識體係,不易於初學者對MyBatis進行係統學習。隨著移動互聯網應用的興起,係統掌握MyBatis編程技巧已經成瞭用Java構建移動互聯網網站的必要條件。為瞭順應時代的要求,筆者寫下瞭這本書,以期為廣大需要掌握MyBatis的開發者提供學習和參考的資料。
閱讀本書要求開發人員擁有Java語言基礎和JDBC基礎知識,對數據庫也要掌握入門知識,最好能夠掌握常用的設計模式,因為在介紹MyBatis構造時,常常涉及設計模式,尤其是第6章和第7章的內容。
本書以講解MyBatis基礎運用和原理為主,所以適閤初級到中高級開發人員閱讀。
本書分為三大部分。
第一部分是MyBatis基礎應用,主要介紹如何高效地使用MyBatis。
第1章:MyBatis的內容簡介,告訴讀者MyBatis是什麼,在何種場景下使用它。
第2章:主要介紹MyBatis的基礎模塊及其生命周期,並給齣實例。
第3章:主要介紹MyBatis配置的主要含義和內容。
第4章:介紹MyBatis映射器的主要元素及其使用方法。
第5章:介紹動態SQL,助你輕鬆應對大部分的SQL場景。
第二部分是MyBatis原理,我們將深入源碼去理解MyBatis的內部運行原理以及插件的開發方法和技巧。
第6章:介紹MyBatis的解析和運行原理,我們將瞭解到SqlSession的構建方法,以及其四大對象是如何工作的。
第7章:在第6章的基礎上著重介紹MyBatis的插件,這裏我們將學習插件的設計原理,以及開發方法和注意的要點。
第三部分是MyBatis的實戰應用,主要講解MyBatis的一些實用的場景。
第8章:介紹MyBatis-Spring,主要講解如何在Spring項目中集成MyBatis應用,幫助讀者在Spring的環境中順利使用MyBatis。
第9章:介紹MyBatis的實用場景,精選一批典型且又常用的場景。詳細解析每一個場景下,開發人員需要注意避免的一些錯誤和性能上的損失。
MyBatis源於2002年的iBatis項目,至今MyBatis中依然有許多iBatis的痕跡。本書默認使用MyBatis的版本是3.3.0,使用MyBatis-Spring的版本是1.2.3。而曆史上的iBatis的書籍已經跟不上技術發展的步伐,於是筆者通過自己的努力和實踐,在研究MyBatis源碼的基礎上,寫作本書。從本書中既能學習如何使用MyBatis,也可以學習MyBatis的原理和應用,為國內的MyBatis開發者提供一條係統掌握MyBatis編程技巧的捷徑,當然讀者也可以把本書作為工具書參考。在實際操作中,MyBatis往往是結閤Spring使用的,於是本書花費瞭一些篇幅講解MyBatis-Spring技術,筆者也會略略提到Spring項目的內容,以便更好地論述它們。最後筆者還將講解一些使用頻率高、參考價值大的場景,使讀者能熟練掌握MyBatis的開發。
本書堅持實用原則,對於一些使用頻率低的技術並沒有提及太多,比如注解SQL、SQL
構造器等內容,使用這些內容,會造成代碼的可讀性下降。
感謝我的公司為我提供真實的使用MyBatis的環境,所有的程序代碼都經過瞭調試。感謝我的姐姐楊堅,她參與編寫並通篇審校瞭本書,潤色瞭那些晦澀的句子。同時也感謝電子工業齣版社的編輯們,尤其是汪達文的全程跟進。沒有他們的辛苦付齣,就沒有本書的成功齣版。在齣版本書的欣喜之餘,也伴著戰戰兢兢,因為筆者纔疏學淺,很多東西都是從對源碼的理解和實際操作中獲得的,因此書中難免有疏漏之處,或有不能讓讀者滿意的地方。如果有睏惑,讀者可以發郵件到我的郵箱:ykzhen2013@163.com,也可以在我的博客(http://blog.csdn.net/ykzhen2015)中和我討論,還望各位同行不吝賜教。
楊開振
2016年7月
深入淺齣MyBatis技術原理與實戰 下載 mobi epub pdf txt 電子書