注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)iBATIS框架源碼剖析

iBATIS框架源碼剖析

iBATIS框架源碼剖析

定 價:¥79.00

作 者: 任鋼 著
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 軟件工程/開發(fā)項目管理

ISBN: 9787121108723 出版時間: 2010-06-01 包裝: 平裝
開本: 16開 頁數(shù): 510 字數(shù):  

內(nèi)容簡介

  iBATIS是一種比較流行的ORM框架,本書全面介紹其結(jié)構(gòu)體系和分析其源程序代碼,該框架的核心包括兩個組件,一個是iBATIS DAO,另一個是iBATIS SQL Map。本書分為三個部分,第一部分是介紹iBATIS的一些基礎(chǔ)知識;第二部分是介紹iBATIS DAO的框架結(jié)構(gòu)及其實現(xiàn);第三部分是針對iBATIS的底層平臺iBATIS SQL Map進行分析。其中第三部分是主要內(nèi)容:首先剖析了SQL Map是如何讀取配置信息的;其次說明了SQL Map引擎的實現(xiàn),勾畫出iBATIS SQL Map的框架結(jié)構(gòu),描述其核心實現(xiàn)機制和主要實現(xiàn)步驟;再次說明SQL Map如何用來實現(xiàn)數(shù)據(jù)庫處理,包括事務(wù)管理、數(shù)據(jù)庫連接池,以及SQL Map中Mapping的實現(xiàn),這也是iBATIS不同于其他ORM框架的獨創(chuàng)性實現(xiàn);最后就是一些常用的實現(xiàn),如 TypeHandler類型轉(zhuǎn)化和iBATIS常用工具的實現(xiàn)。在源碼剖析過程中,本書采用了代碼注釋、UML分析和設(shè)計、GoF設(shè)計模式抽象和歸類、代碼跟蹤和案例的講解和說明。其目的是讓讀者全方位地了解iBATIS的實現(xiàn)框架和實現(xiàn)手段。一方面讓讀者理解開發(fā)者的思路,另一方面也是幫助讀者在實際工作中能應(yīng)用這些策略、方法和編程技巧。本書適用于軟件設(shè)計師、架構(gòu)師和一些有較好Java基礎(chǔ)的開發(fā)人員,既可以作為iBATIS的學(xué)習(xí)指南,也可以給軟件架構(gòu)師在設(shè)計方面進行參考。

作者簡介

  任鋼,軟件碩士,高級工程師,從事了十多年的企業(yè)級應(yīng)用開發(fā),是國家認證的系統(tǒng)分析師、信息項目管理師和系統(tǒng)架構(gòu)設(shè)計師,在學(xué)術(shù)刊物上發(fā)表了近10篇論文,曾擔(dān)任多年的中軟創(chuàng)新公司的技術(shù)總監(jiān)和部門總監(jiān)等,現(xiàn)任文思創(chuàng)新公司的技術(shù)總監(jiān)。

圖書目錄

第一部分 iBATIS的基礎(chǔ)知識 
第1章 iBATIS概述 2
1.1 iBATIS概論 2
1.2 ORM模型介紹 4
1.2.1 什么是ORM 4
1.2.2 ORM的實現(xiàn)方式 4
1.2.3 常用的ORM框架 8
1.2.4 ORM模型和持久層框架 9
1.3 iBATIS的組件和實現(xiàn)的功能 10
1.3.1 iBATIS的DAO組件 10
1.3.2 iBATIS SQL Map組件 11 
第2章 相關(guān)的技術(shù)背景和基礎(chǔ)知識 13
2.1 面向?qū)ο蠛蚒ML基本知識 13
2.1.1 面向?qū)ο蠡A(chǔ) 13
2.1.2 UML基礎(chǔ)知識 15
2.1.3 UML圖 16
2.1.4 類和接口以及之間的關(guān)系 18
2.2 Java基礎(chǔ)知識 26
2.2.1 Java的I/O操作 27
2.2.2 Java解析XML文檔 27
2.2.3 Java的線程管理 29
2.2.4 Java的反射機制 31
2.2.5 Java的動態(tài)Proxy 32
2.2.6 JDBC和JDBC擴展 33
2.2.7 JavaBean 34
2.2.8 JNDI 35
2.3 數(shù)據(jù)庫相關(guān)基礎(chǔ)知識 37
2.3.1 SQL 37
2.3.2 數(shù)據(jù)庫事務(wù)管理 38
2.4 Java EE規(guī)范相關(guān)知識 39
2.5 開源ORM框架 40
2.5.1 Hibernate 40
2.5.2 TopLink 42
2.5.3 Apache OJB 42
2.6 其他開源框架 43
2.6.1 與Log相關(guān)的開源框架 43
2.6.2 OSCache 44
2.6.3 Commons-DBCP數(shù)據(jù)庫連
2.6.3 接池 45
2.7 GoF的23種設(shè)計模式 45 
第3章 安裝和配置iBATIS源碼 48
3.1 安裝和配置iBATIS SQL Map
3.1 源碼環(huán)境 48
3.2 安裝和配置iBATIS DAO
3.2 源碼環(huán)境 50
3.3 安裝和配置iBATIS JPetStore
3.3 源碼環(huán)境 51
3.3.1 iBATIS JPetStore源碼環(huán)境
3.3.1 配置 51
3.3.2 創(chuàng)建iBATIS JPetStore的
3.3.1 應(yīng)用 53
3.3.3 安裝iBATIS JPetStore的
3.3.1 MySQL數(shù)據(jù)庫 53
3.3.4 安裝MySQL數(shù)據(jù)庫的管理
3.3.1 工具 58
3.3.5 配置成功的標志 60 
第二部分 iBATIS DAO框架 源碼剖析 
第4章 iBATIS DAO體系結(jié)構(gòu)和
第4章 實現(xiàn) 64
4.1 iBATIS DAO基本結(jié)構(gòu) 64
4.1.1 Java EE核心設(shè)計模式
4.1.1 --DAO模式介紹 65
4.1.2 iBATIS DAO包文件和組件
4.1.1 結(jié)構(gòu) 66
4.1.3 使用iBATIS DAO工作
4.1.1 流程 67
4.2 iBATIS DAO外部接口和
4.2 實現(xiàn) 68
4.2.1 iBATIS DAO框架外部
4.2.1 接口 68
4.2.2 iBATIS DAO Template API
4.2.2 結(jié)構(gòu)和說明 69
4.3 DAO配置文件讀取 72
4.3.1 dao.xml的格式說明 72
4.3.2 dao.xml文件的讀取過程 73
4.3.3 如何驗證dao.xml文件 82
4.3.4 dao.xml配置文件實例
4.4.1 說明 84
4.4 iBATIS DAO引擎實現(xiàn) 87
4.4.1 DAO業(yè)務(wù)實現(xiàn)的序列圖和
4.4.1 說明 87
4.4.2 iBATIS DAO組件管理 90
4.4.3 iBATIS DAO事務(wù)管理
4.4.1 實現(xiàn) 94
4.5 基于iBATIS DAO SqlMap的
4.5 實例說明 124
4.6 讀取源碼的收獲 132 
第三部分 iBATIS的底層平臺--iBATIS SQL Map的分析 
第5章 iBATIS SQL Map體系結(jié)構(gòu) 
第5章 和剖析 134
5.1 SQL Map實現(xiàn)的功能和
5.1 原理 134
5.2 SQL Map組件的包結(jié)構(gòu)和
5.2 文件結(jié)構(gòu) 136
5.3 SQL Map的組件結(jié)構(gòu) 137 
第6章 SQL Map配置信息的讀取 139
6.1 XML文件的驗證處理 139
6.1.1 XML驗證處理的
3.3.1 通用模式 139
6.1.2 iBATIS SQL Map的XML
6.1.2 驗證 142
6.2 解析SQL Map配置文件 145
6.2.1 SqlMapConfig.xml的格式
3.3.1 說明 145
6.2.2 SqlMapConfig.xml文件讀取
3.3.1 總體說明 147
6.2.3 基于設(shè)計模式中策略模式
3.3.1 的數(shù)據(jù)執(zhí)行 152
6.2.4 基于遞歸和路徑來實現(xiàn)配置
3.3.1 文件的全部遍歷 157
6.2.5 XmlParserState對象在解析
3.3.1 SQL Map XML配置文件的
3.3.1 協(xié)調(diào)者角色 159
6.2.6 配置的一級門面
3.3.1 SqlMapConfiguration
3.3.1 實例化對象 162
6.2.7 一級應(yīng)用門面
3.3.1 SqlMapExecutorDelegate
3.3.1 實例化對象 164
6.2.8 SQL Map配置文件中節(jié)點
3.3.1 解析的通用處理 165
6.2.9 數(shù)據(jù)庫事務(wù)節(jié)點的解析和
3.3.1 轉(zhuǎn)化 167
6.2.10 配置文件其他節(jié)點的
3.3.1 解析和轉(zhuǎn)化 170
6.3 解析SQL Map映射文件 178
6.3.1 SQL Map XML映射
3.3.1 文件格式 178
6.3.2 SQL Map XML映射文件
3.3.1 讀取總體說明 182
6.3.3 XmlParserState對象解析
3.3.1 SQL Map映射文件的
3.3.1 協(xié)調(diào)者角色 185
6.3.4 cacheModel節(jié)點的解析
3.3.1 和轉(zhuǎn)化 187
6.3.5 parameterMap節(jié)點的解析
3.3.1 和轉(zhuǎn)化 194
6.3.6 resultMap節(jié)點的解析
3.3.1 和轉(zhuǎn)化 200
6.3.7 statement類型節(jié)點的解析
3.3.1 和轉(zhuǎn)化 212
6.3.8 對SQL的處理 223
6.4 抽象出通用的XML解析
6.4 框架 229
6.5 讀取源碼的收獲 235 
第7章 SQL Map引擎實現(xiàn)框架 236
7.1 SQL Map引擎實現(xiàn)框架的
7.1 組成 236
7.2 業(yè)務(wù)運行過程和介紹 239
7.2.1 總體業(yè)務(wù)運行過程序
3.3.1 列圖 239
7.2.2 系統(tǒng)總體運行簡化說
3.3.1 明圖 240
7.3 業(yè)務(wù)實現(xiàn)類的分析 242
7.3.1 業(yè)務(wù)實現(xiàn)類 243
7.3.2 配置信息類 254
7.3.3 運行狀態(tài)信息類 256
7.4 業(yè)務(wù)實現(xiàn)分析 258
7.4.1 業(yè)務(wù)實現(xiàn)兩個階段的
3.3.1 分析 258
7.4.2 查詢類業(yè)務(wù)實現(xiàn)過程 259
7.4.3 單事務(wù)業(yè)務(wù)操作實現(xiàn)
3.3.1 過程 264
7.4.4 聯(lián)合事務(wù)處理實現(xiàn)過程 266
7.4.5 存儲過程的處理 272
7.4.6 批處理及其實現(xiàn) 275
7.4.7 全局JTA事務(wù)的處理 277
7.4.8 全局外部事務(wù)的處理 278
7.4.9 用戶自定義數(shù)據(jù)庫
3.3.1 Connection處理 279
7.5 讀取源碼的收獲 280 
第8章 SQL Map數(shù)據(jù)庫處理 281
8.1 SQL Map的transaction
8.1 Manager 282
8.1.1 Java事務(wù)簡介 282
8.1.2 SQL Map的transaction
3.3.1 Manager概述 282
8.1.3 SQL Map事務(wù)管理的
3.3.1 設(shè)計模式 283
8.2 系統(tǒng)如何調(diào)用事務(wù)管理和
8.2 SQL Map事務(wù)策略 285
8.2.1 SQL Map如何調(diào)用事務(wù) 285
8.2.2 Java事務(wù)類型 286
8.2.3 SQL Map中JDBC事務(wù)
3.3.1 實現(xiàn) 290
8.2.4 SQL Map中JTA事務(wù)
3.3.1 實現(xiàn) 293
8.2.5 SQL Map的External事務(wù)
3.3.1 實現(xiàn) 297
8.2.6 SQL Map的用戶事務(wù)
3.3.1 實現(xiàn) 298
8.3 SQL Map的DataSource
8.3 策略 298
8.3.1 關(guān)于DataSource的說明 298
8.3.2 SQL Map的DataSource
3.3.1 結(jié)構(gòu)和內(nèi)容 300
8.3.3 SIMPLE策略的實現(xiàn) 302
8.3.4 DBCP策略實現(xiàn) 302
8.3.5 JNDI策略實現(xiàn) 304
8.4 SQL Map自定義DataSource
8.4 實現(xiàn) 306
8.4.1 DataSource接口的結(jié)構(gòu) 306
8.4.2 實現(xiàn)DataSource的設(shè)計
3.3.1 思路 306
8.4.3 SimpleDataSource設(shè)計和
3.3.1 實現(xiàn) 308
8.5 SQL Map擴展DataSource
8.5 為C3P0 322
8.6 SQL Map如何進行批處理 324
8.7 SQL Map事務(wù)隔離的實現(xiàn) 327
8.7.1 JDBC事務(wù)隔離概述 327
8.7.2 SQL Map的事務(wù)隔離的
3.3.1 實現(xiàn) 328
8.8 SQL Map事務(wù)狀態(tài)的實現(xiàn) 329
8.9 讀取源碼的收獲 330 
第9章 SQL Map中Mapping實現(xiàn) 332
9.1 ParameterMap框架及其
9.1 說明 333
9.1.1 ParameterMap總體框架
3.3.1 說明 333
9.1.2 ParameterMap組件中各個
3.3.1 類介紹 334
9.1.3 ParameterMap框架如何
3.3.1 工作 335
9.2 ResultMap框架及其說明 338
9.2.1 ResultMap框架介紹 338
9.2.2 ResultMap框架說明 339
9.2.3 ResultMap中的類說明 340
9.2.4 ResultMap框架是如何
3.3.1 工作的 341
9.2.5 如何實現(xiàn)子查詢 342
9.2.6 延遲加載的實現(xiàn) 345
9.3 Statement框架及其說明 348
9.3.1 Statement介紹 348
9.3.2 Statement框架總體結(jié)構(gòu) 349
9.3.3 Statement組件中的類
3.3.1 介紹 350
9.3.4 MappedStatement是如何
3.3.1 工作的 354
9.3.5 Statement緩存的實現(xiàn) 361
9.3.6 自動生成的主鍵 363
9.4 Sql框架及其說明 367
9.4.1 Sql接口框架 367
9.4.2 SqlChild接口框架 368
9.4.3 Sql接口方法 368
9.4.4 靜態(tài)SQL的實現(xiàn) 369
9.4.5 簡單動態(tài)SQL的實現(xiàn) 370
9.4.6 動態(tài)SQL語言的實現(xiàn) 372
9.5 數(shù)據(jù)對象轉(zhuǎn)換框架及其
9.5 說明 379
9.5.1 DataExchange組件作用、
3.3.1 內(nèi)容和設(shè)計模式 380
9.5.2 Accessplan組件的
3.3.1 設(shè)計模式 393
9.5.3 DataExchange和Accessplan
3.3.1 在系統(tǒng)中如何實現(xiàn) 399
9.6 讀取源碼的收獲 404 
第10章 SQL Map緩存管理和實現(xiàn) 405
10.1 SQL Map緩存結(jié)構(gòu)和組成 406
10.2 系統(tǒng)如何使用緩存 407
10.2.1 緩存實現(xiàn)的序列圖和
3.3.1 說明 407
10.2.2 CacheModel類緩存的
3.3.1 實現(xiàn) 409
10.2.3 唯一性CacheKey對象的
3.3.1 產(chǎn)生 411
10.3 緩存策略的程序?qū)崿F(xiàn) 412
10.3.1 FIFO緩存實現(xiàn) 413
10.3.2 LRU緩存實現(xiàn) 415
10.3.3 MEMORY緩存實現(xiàn) 417
10.3.4 OSCACHE緩存實現(xiàn) 420
10.4 擴展緩存策略--增加先進
10.4 后出緩存策略 422
10.5 讀取源碼的收獲 425 
第11章 TypeHandler類型轉(zhuǎn)化 426
11.1 Java的數(shù)據(jù)類型的說明 426
11.2 TypeHandler組件的框架
11.2 結(jié)構(gòu) 427
11.3 TypeHandlerFactory的結(jié)構(gòu)、
11.3 作用和實現(xiàn) 428
11.3.1 TypeHandlerFactory的
3.3.1 別名處理 428
11.3.2 TypeHandlerFactory容器
3.3.1 的數(shù)據(jù)類型轉(zhuǎn)化 430
11.4 TypeHandler的實現(xiàn) 431
11.4.1 一般類型的處理 433
11.4.2 Sql類型的處理 434
11.4.3 通用類型的處理 436
11.4.4 定制數(shù)據(jù)類型的轉(zhuǎn)化 438
11.5 讀取源碼的收獲 440 
第12章 iBATIS常用工具的實現(xiàn) 441
12.1 Resources工具 441
12.1.1 資源加載 441
12.1.2 實例化類并緩存 445
12.2 Bean管理 447
12.2.1 ClassInfo類 447
12.2.2 Probe接口及其實現(xiàn) 453
12.3 Log管理 468
12.4 調(diào)試信息工具 472
12.5 ScriptRunner的應(yīng)用 472
12.6 讀取源碼的收獲 476
附錄一:第4章 dao-2.dtd 478
附錄二:第5章 SqlMapConfig.xml
附錄二:的DTD結(jié)構(gòu) 479
附錄三:第5章 SqlMapConfig.xml
附錄三:的XSD結(jié)構(gòu) 484
附錄四:第5章 SqlMapMapping.xml
附錄四:的DTD結(jié)構(gòu) 486
附錄五:第5章 SqlMapMapping.xml
附錄五:的XSD結(jié)構(gòu) 500
附錄六:第11章 JDBC Types Mapped
附錄六:to Java Types 503
附錄七:第11章 Java Types Mapped
附錄七:to JDBC Types 504
附錄八:第11章 JDBC Types Mapped
附錄八:to Java Object Types 505
附錄九:第11章 Java Object Types
附錄九:Mapped to JDBC Types 506
附錄十:第11章 JDBC Types Mapped
附錄十:to Database-specific SQL
附錄十:Types 507
參考文獻 509

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號