-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

MyBatis 3源碼深度解析

( 簡體 字)
作者:江榮波類別:1. -> 程式設計 -> 綜合
譯者:
出版社:清華大學出版社MyBatis 3源碼深度解析 3dWoo書號: 51762
詢問書籍請說出此書號!

缺書
NT售價: 345

出版日:10/1/2019
頁數:252
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302535614
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

在寫作本書時,SSM(Spring、Spring MVC和MyBatis)框架已經成為很多互聯網公司的標配。筆者最早接觸MyBatis框架是在2014年,當時接手的是一個非常成熟的網上銀行系統,項目中使用的持久層框架就是MyBatis的前身—iBatis框架。后來換了兩份工作,新的公司也都選擇MyBatis作為持久層框架。從iBatis過渡到MyBatis框架幾乎不需要任何學習成本,MyBatis延續了iBatis簡單易用的特點,優化了SQL配置方式,引用OGNL表達式來支持動態SQL配置,使得動態SQL配置更加優雅,而且更容易理解。在筆者看來,MyBatis相對于iBatis框架最大的創新是引入了SQL Mapper的概念。我們可以將XML文件中的SQL配置與一個Java接口進行綁定,SQL配置的命名空間對應Java接口的完全限定名,而具體的每個SQL語句的配置對應Java接口中的一個方法,建立綁定后,可以通過調用Java接口中定義的方法來執行XML文件中配置的SQL語句。
MyBatis作為持久層框架,以其小巧輕便、SQL可配置、使用簡單等特點深受廣大Java開發者喜愛。然而大多數開發人員對MyBatis框架的理解僅局限于使用,并不理解框架底層的實現原理。作為一名開發人員,閱讀開源框架的源碼,可以學習源碼中對設計模式及面向對象設計原則的應用,有助于提升自身編碼能力。筆者在工作之余,深入研究了MyBatis框架的源碼,本書將會從源碼的角度分析MyBatis框架各個特性的實現原理。
閱讀準備
在閱讀本書之前,讀者需要準備如下開發環境:
? JDK1.8或以上版本
? Apache Maven構建工具
? IntelliJ IDEA 開發工具
? Git版本控制工具
內容概要
本書主要分為兩篇:第1篇為MyBatis 3源碼篇(第1~11章),主要介紹MyBatis框架各個特性的源碼實現;第2篇章為MyBatis Spring源碼篇(第12~13章),主要介紹MyBatis框架與Spring框架整合的原理及MyBatis Spring模塊的實現細節。下面是本書的內容大綱。
第1章 搭建MyBatis源碼環境
主要介紹如何搭建MyBatis源碼調試環境,包括MyBatis框架源碼獲取途徑、如何導入集成開發工具以及如何運行MyBatis源碼中的測試用例。
第2章 JDBC規范詳解
MyBatis框架是對JDBC輕量級的封裝,熟練掌握JDBC規范有助于理解MyBatis框架實現原理。本章將詳細介紹JDBC規范相關細節,已經全面掌握JDBC規范的讀者可以跳過該章。
第3章 MyBatis常用工具類
介紹MyBatis框架中常用的工具類,避免讀者因對這些工具類的使用不熟悉而導致對框架主流程理解的干擾,這些工具類包括MetaObject、ObjectFactory、ProxyFactory等。
第4章 MyBatis核心組件介紹
介紹MyBatis的核心組件,包括Configuration、SqlSession、Executor、MappedStatement等,包括這些組件的作用及MyBatis執行SQL語句的核心流程。
第5章 SqlSession的創建過程
主要介紹SqlSession組件的創建過程,包括MyBatis框架對XPath方式解析XML封裝的工具類、MyBatis主配置文件解析生成Configuration對象的過程。
第6章 SqlSession執行Mapper過程
本章介紹Mapper接口注冊的過程、SQL配置轉換為MappedStatement對象并注冊到Configuration對象的過程。除此之外,本章還將介紹SqlSession對象執行Mapper的過程。
第7章 MyBatis緩存
本章首先介紹MyBatis一級緩存和二級緩存的使用細節,接著介紹一級緩存和二級緩存的實現原理,最后介紹MyBatis如何整合Redis作為二級緩存。
第8章 MyBatis日志實現
基于Java語言的日志框架比較多,比較常用的有Logback、Log4j等,本章介紹Java的日志框架發展史,并介紹這些日志框架之間的關系,最后介紹MyBatis自動查找日志框架的實現原理。
第9章 動態SQL實現原理
本章主要介紹MyBatis動態SQL的使用、動態SQL配置轉換為SqlSource對象的過程以及動態SQL的解析原理,最后從源碼的角度分析動態SQL配置中#{}和${}參數占位符的區別。
第10章 MyBatis插件原理及應用
本章介紹MyBatis插件的實現原理,并以實際的案例介紹如何自定義MyBatis插件。在本章中將會實現兩個MyBatis插件,分別為分頁查詢插件和慢SQL統計插件。
第11章 MyBatis級聯映射與懶加載
本章介紹MyBatis中一對一、一對多級聯映射和懶加載機制的使用細節,并介紹級聯映射和懶加載的源碼實現。
第12章 MyBatis與Spring整合案例
在介紹MyBatis框架與Spring整合原理之前,需要了解MyBatis整合Spring的基本配置,本章以一個用戶注冊RESTful接口案例作為MyBatis框架與Spring框架整合的最佳實踐。
第13章 MyBatis Spring的實現原理
首先介紹Spring框架中的一些核心概念和Spring IoC容器的啟動過程,接著介紹MyBatis和Spring整合后動態代理產生的Mapper對象是如何與Spring Ioc容器進行關聯的,最后介紹MyBatis整合Spring事務管理的實現原理。
隨書源碼
本書相關源碼托管在Github上,讀者可以從Github倉庫獲取隨書源碼。
圖書勘誤
由于個人能力有限,書中可能有表述不到位或者對知識點理解欠妥的地方,歡迎讀者批評指正。若有任何疑問,均可以在隨書源碼Github倉庫上提交。
致謝
本書從寫作到完稿用了一年多時間,這個過程對于筆者來說是一個極大的考驗。作為一名程序員,只有不斷地提升,才會覺得充實。把大量的時間用在寫作上,時常會因為沒有攝入新知識而恐慌,感謝在本書寫作過程中家人對我精神上的支持。另外,特別感謝夏毓彥老師和清華大學出版社的工作人員,有你們的幫助才有本書的順利出版。

著 者
2019年5月
內容簡介:

本書從MyBatis源碼的角度分析Mapper綁定過程、SqlSession操作數據庫原理、插件實現原理等,同時介紹一些MyBatis的高級用法,并挖掘MyBatis源碼中使用的設計模式。
本書共13章,分為MyBatis 3源碼篇和MyBatis Spring源碼篇。第1~11章介紹MyBatis核心源碼,從源碼的角度分析MyBatis的實現原理,并介紹一些MyBatis的高級用法。MyBatis大多數情況下會與Spring整合使用,第12~13章介紹MyBatis Spring的實現原理,并分析MyBatis Spring模塊的核心代碼。
本書適合掌握了MyBatis的基本用法并希望了解MyBatis底層實現的Java開發人員、架構師以及對Java開源項目感興趣的讀者閱讀。
目錄:

第1篇MyBatis3源碼
第1章搭建MyBatis源碼環境 3
1.1MYBATIS3簡介 3
1.2環境準備 4
1.3獲取MYBATIS源碼 4
1.4導入MYBATIS源碼到IDE 6
1.5HSQLDB數據庫簡介 9
1.6本章小結 11
第2章JDBC規范詳解 13
2.1JDBCAPI簡介 13
2.1.1建立數據源連接 14
2.1.2執行SQL語句 15
2.1.3處理SQL執行結果 16
2.1.4使用JDBC操作數據庫 16
2.2JDBCAPI中的類與接口 17
2.2.1java.sql包詳解 17
2.2.2javax.sql包詳解 20
2.3CONNECTION詳解 24
2.3.1JDBC驅動類型 24
2.3.2java.sql.Driver接口 26
2.3.3JavaSPI機制簡介 27
2.3.4java.sql.DriverAction接口 29
2.3.5java.sql.DriverManager類 29
2.3.6javax.sql.DataSource接口 31
2.3.7使用JNDIAPI增強應用的可移植性 32
2.3.8關閉Connection對象 34
2.4STATEMENT詳解 35
2.4.1java.sql.Statement接口 35
2.4.2java.sql.PreparedStatement接口 39
2.4.3java.sql.CallableStatement接口 43
2.4.4獲取自增長的鍵值 44
2.5RESULTSET詳解 45
2.5.1ResultSet類型 45
2.5.2ResultSet并行性 46
2.5.3ResultSet可保持性 46
2.5.4ResultSet屬性設置 47
2.5.5ResultSet游標移動 47
2.5.6修改ResultSet對象 48
2.5.7關閉ResultSet對象 50
2.6DATABASEMETADATA詳解 51
2.6.1創建DatabaseMetaData對象 51
2.6.2獲取數據源的基本信息 51
2.6.3獲取數據源支持特性 53
2.6.4獲取數據源限制 53
2.6.5獲取SQL對象及屬性 54
2.6.6獲取事務支持 54
2.7JDBC事務 54
2.7.1事務邊界與自動提交 55
2.7.2事務隔離級別 55
2.7.3事務中的保存點 56
2.8本章小結 57
第3章MyBatis常用工具類 58
3.1使用SQL類生成語句 58
3.2使用SCRIPTRUNNER執行腳本 64
3.3使用SQLRUNNER操作數據庫 67
3.4METAOBJECT詳解 71
3.5METACLASS詳解 72
3.6OBJECTFACTORY詳解 73
3.7PROXYFACTORY詳解 74
3.8本章小結 75
第4章MyBatis核心組件介紹 76
4.1使用MYBATIS操作數據庫 76
4.2MYBATIS核心組件 80
4.3CONFIGURATION詳解 82
4.4EXECUTOR詳解 88
4.5MAPPEDSTATEMENT詳解 90
4.6STATEMENTHANDLER詳解 92
4.7TYPEHANDLER詳解 94
4.8PARAMETERHANDLER詳解 97
4.9RESULTSETHANDLER詳解 98
4.10本章小結 100
第5章SqlSession的創建過程 101
5.1XPATH方式解析XML文件 101
5.2CONFIGURATION實例創建過程 104
5.3SQLSESSION實例創建過程 108
5.4本章小結 109
第6章SqlSession執行Mapper過程 110
6.1MAPPER接口的注冊過程 110
6.2MAPPEDSTATEMENT注冊過程 114
6.3MAPPER方法調用過程詳解 119
6.4SQLSESSION執行MAPPER過程 126
6.5本章小結 130
第7章MyBatis緩存 131
7.1MYBATIS緩存的使用 131
7.2MYBATIS緩存實現類 132
7.3MYBATIS一級緩存實現原理 135
7.4MYBATIS二級緩存實現原理 138
7.5MYBATIS使用REDIS緩存 142
7.6本章小結 145
第8章MyBatis日志實現 146
8.1JAVA日志體系 146
8.2MYBATIS日志實現 149
8.3本章小結 155
第9章動態SQL實現原理 156
9.1動態SQL的使用 156
9.2SQLSOURCE與BOUNDSQL詳解 159
9.3LANGUAGEDRIVER詳解 161
9.4SQLNODE詳解 164
9.5動態SQL解析過程 169
9.6從源碼角度分析#{}和${}的區別 179
9.7本章小結 182
第10章MyBatis插件原理及應用 184
10.1MYBATIS插件實現原理 184
10.2自定義一個分頁插件 193
10.3自定義慢SQL統計插件 198
10.4本章小結 200
第11章MyBatis級聯映射與懶加載 201
11.1MYBATIS級聯映射詳解 201
11.1.1準備工作 201
11.1.2一對多關聯映射 205
11.1.3一對一關聯映射 206
11.1.4Discriminator詳解 209
11.2MYBATIS懶加載機制 210
11.3MYBATIS級聯映射實現原理 212
11.3.1ResultMap詳解 212
11.3.2ResultMap解析過程 213
11.3.3級聯映射實現原理 218
11.4懶加載實現原理 225
11.5本章小結 230
第2篇MyBatisSpring源碼
第12章MyBatis與Spring整合案例 233
12.1準備工作 233
12.2MYBATIS與SPRING整合 234
12.3用戶注冊案例 236
12.4本章小結 239
第13章MyBatisSpring的實現原理 240
13.1SPRING中的一些概念 240
13.2SPRING容器啟動過程 243
13.3MAPPER動態代理對象注冊過程 244
13.4MYBATIS整合SPRING事務管理 248
13.5本章小結 253
序: