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

iBATIS框架源碼剖析

iBATIS框架源碼剖析

定 價(jià):¥79.00

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

ISBN: 9787121108723 出版時(shí)間: 2010-06-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 510 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書目錄

第一部分 iBATIS的基礎(chǔ)知識(shí) 
第1章 iBATIS概述 2
1.1 iBATIS概論 2
1.2 ORM模型介紹 4
1.2.1 什么是ORM 4
1.2.2 ORM的實(shí)現(xiàn)方式 4
1.2.3 常用的ORM框架 8
1.2.4 ORM模型和持久層框架 9
1.3 iBATIS的組件和實(shí)現(xiàn)的功能 10
1.3.1 iBATIS的DAO組件 10
1.3.2 iBATIS SQL Map組件 11 
第2章 相關(guān)的技術(shù)背景和基礎(chǔ)知識(shí) 13
2.1 面向?qū)ο蠛蚒ML基本知識(shí) 13
2.1.1 面向?qū)ο蠡A(chǔ) 13
2.1.2 UML基礎(chǔ)知識(shí) 15
2.1.3 UML圖 16
2.1.4 類和接口以及之間的關(guān)系 18
2.2 Java基礎(chǔ)知識(shí) 26
2.2.1 Java的I/O操作 27
2.2.2 Java解析XML文檔 27
2.2.3 Java的線程管理 29
2.2.4 Java的反射機(jī)制 31
2.2.5 Java的動(dòng)態(tài)Proxy 32
2.2.6 JDBC和JDBC擴(kuò)展 33
2.2.7 JavaBean 34
2.2.8 JNDI 35
2.3 數(shù)據(jù)庫(kù)相關(guān)基礎(chǔ)知識(shí) 37
2.3.1 SQL 37
2.3.2 數(shù)據(jù)庫(kù)事務(wù)管理 38
2.4 Java EE規(guī)范相關(guān)知識(shí) 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ù)庫(kù)連
2.6.3 接池 45
2.7 GoF的23種設(shè)計(jì)模式 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ù)庫(kù) 53
3.3.4 安裝MySQL數(shù)據(jù)庫(kù)的管理
3.3.1 工具 58
3.3.5 配置成功的標(biāo)志 60 
第二部分 iBATIS DAO框架 源碼剖析 
第4章 iBATIS DAO體系結(jié)構(gòu)和
第4章 實(shí)現(xiàn) 64
4.1 iBATIS DAO基本結(jié)構(gòu) 64
4.1.1 Java EE核心設(shè)計(jì)模式
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 實(shí)現(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)和說(shuō)明 69
4.3 DAO配置文件讀取 72
4.3.1 dao.xml的格式說(shuō)明 72
4.3.2 dao.xml文件的讀取過(guò)程 73
4.3.3 如何驗(yàn)證dao.xml文件 82
4.3.4 dao.xml配置文件實(shí)例
4.4.1 說(shuō)明 84
4.4 iBATIS DAO引擎實(shí)現(xiàn) 87
4.4.1 DAO業(yè)務(wù)實(shí)現(xiàn)的序列圖和
4.4.1 說(shuō)明 87
4.4.2 iBATIS DAO組件管理 90
4.4.3 iBATIS DAO事務(wù)管理
4.4.1 實(shí)現(xiàn) 94
4.5 基于iBATIS DAO SqlMap的
4.5 實(shí)例說(shuō)明 124
4.6 讀取源碼的收獲 132 
第三部分 iBATIS的底層平臺(tái)--iBATIS SQL Map的分析 
第5章 iBATIS SQL Map體系結(jié)構(gòu) 
第5章 和剖析 134
5.1 SQL Map實(shí)現(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文件的驗(yàn)證處理 139
6.1.1 XML驗(yàn)證處理的
3.3.1 通用模式 139
6.1.2 iBATIS SQL Map的XML
6.1.2 驗(yàn)證 142
6.2 解析SQL Map配置文件 145
6.2.1 SqlMapConfig.xml的格式
3.3.1 說(shuō)明 145
6.2.2 SqlMapConfig.xml文件讀取
3.3.1 總體說(shuō)明 147
6.2.3 基于設(shè)計(jì)模式中策略模式
3.3.1 的數(shù)據(jù)執(zhí)行 152
6.2.4 基于遞歸和路徑來(lái)實(shí)現(xiàn)配置
3.3.1 文件的全部遍歷 157
6.2.5 XmlParserState對(duì)象在解析
3.3.1 SQL Map XML配置文件的
3.3.1 協(xié)調(diào)者角色 159
6.2.6 配置的一級(jí)門面
3.3.1 SqlMapConfiguration
3.3.1 實(shí)例化對(duì)象 162
6.2.7 一級(jí)應(yīng)用門面
3.3.1 SqlMapExecutorDelegate
3.3.1 實(shí)例化對(duì)象 164
6.2.8 SQL Map配置文件中節(jié)點(diǎn)
3.3.1 解析的通用處理 165
6.2.9 數(shù)據(jù)庫(kù)事務(wù)節(jié)點(diǎn)的解析和
3.3.1 轉(zhuǎn)化 167
6.2.10 配置文件其他節(jié)點(diǎn)的
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 讀取總體說(shuō)明 182
6.3.3 XmlParserState對(duì)象解析
3.3.1 SQL Map映射文件的
3.3.1 協(xié)調(diào)者角色 185
6.3.4 cacheModel節(jié)點(diǎn)的解析
3.3.1 和轉(zhuǎn)化 187
6.3.5 parameterMap節(jié)點(diǎn)的解析
3.3.1 和轉(zhuǎn)化 194
6.3.6 resultMap節(jié)點(diǎn)的解析
3.3.1 和轉(zhuǎn)化 200
6.3.7 statement類型節(jié)點(diǎn)的解析
3.3.1 和轉(zhuǎn)化 212
6.3.8 對(duì)SQL的處理 223
6.4 抽象出通用的XML解析
6.4 框架 229
6.5 讀取源碼的收獲 235 
第7章 SQL Map引擎實(shí)現(xiàn)框架 236
7.1 SQL Map引擎實(shí)現(xiàn)框架的
7.1 組成 236
7.2 業(yè)務(wù)運(yùn)行過(guò)程和介紹 239
7.2.1 總體業(yè)務(wù)運(yùn)行過(guò)程序
3.3.1 列圖 239
7.2.2 系統(tǒng)總體運(yùn)行簡(jiǎn)化說(shuō)
3.3.1 明圖 240
7.3 業(yè)務(wù)實(shí)現(xiàn)類的分析 242
7.3.1 業(yè)務(wù)實(shí)現(xiàn)類 243
7.3.2 配置信息類 254
7.3.3 運(yùn)行狀態(tài)信息類 256
7.4 業(yè)務(wù)實(shí)現(xiàn)分析 258
7.4.1 業(yè)務(wù)實(shí)現(xiàn)兩個(gè)階段的
3.3.1 分析 258
7.4.2 查詢類業(yè)務(wù)實(shí)現(xiàn)過(guò)程 259
7.4.3 單事務(wù)業(yè)務(wù)操作實(shí)現(xiàn)
3.3.1 過(guò)程 264
7.4.4 聯(lián)合事務(wù)處理實(shí)現(xiàn)過(guò)程 266
7.4.5 存儲(chǔ)過(guò)程的處理 272
7.4.6 批處理及其實(shí)現(xiàn) 275
7.4.7 全局JTA事務(wù)的處理 277
7.4.8 全局外部事務(wù)的處理 278
7.4.9 用戶自定義數(shù)據(jù)庫(kù)
3.3.1 Connection處理 279
7.5 讀取源碼的收獲 280 
第8章 SQL Map數(shù)據(jù)庫(kù)處理 281
8.1 SQL Map的transaction
8.1 Manager 282
8.1.1 Java事務(wù)簡(jiǎn)介 282
8.1.2 SQL Map的transaction
3.3.1 Manager概述 282
8.1.3 SQL Map事務(wù)管理的
3.3.1 設(shè)計(jì)模式 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 實(shí)現(xiàn) 290
8.2.4 SQL Map中JTA事務(wù)
3.3.1 實(shí)現(xiàn) 293
8.2.5 SQL Map的External事務(wù)
3.3.1 實(shí)現(xiàn) 297
8.2.6 SQL Map的用戶事務(wù)
3.3.1 實(shí)現(xiàn) 298
8.3 SQL Map的DataSource
8.3 策略 298
8.3.1 關(guān)于DataSource的說(shuō)明 298
8.3.2 SQL Map的DataSource
3.3.1 結(jié)構(gòu)和內(nèi)容 300
8.3.3 SIMPLE策略的實(shí)現(xiàn) 302
8.3.4 DBCP策略實(shí)現(xiàn) 302
8.3.5 JNDI策略實(shí)現(xiàn) 304
8.4 SQL Map自定義DataSource
8.4 實(shí)現(xiàn) 306
8.4.1 DataSource接口的結(jié)構(gòu) 306
8.4.2 實(shí)現(xiàn)DataSource的設(shè)計(jì)
3.3.1 思路 306
8.4.3 SimpleDataSource設(shè)計(jì)和
3.3.1 實(shí)現(xiàn) 308
8.5 SQL Map擴(kuò)展DataSource
8.5 為C3P0 322
8.6 SQL Map如何進(jìn)行批處理 324
8.7 SQL Map事務(wù)隔離的實(shí)現(xiàn) 327
8.7.1 JDBC事務(wù)隔離概述 327
8.7.2 SQL Map的事務(wù)隔離的
3.3.1 實(shí)現(xiàn) 328
8.8 SQL Map事務(wù)狀態(tài)的實(shí)現(xiàn) 329
8.9 讀取源碼的收獲 330 
第9章 SQL Map中Mapping實(shí)現(xiàn) 332
9.1 ParameterMap框架及其
9.1 說(shuō)明 333
9.1.1 ParameterMap總體框架
3.3.1 說(shuō)明 333
9.1.2 ParameterMap組件中各個(gè)
3.3.1 類介紹 334
9.1.3 ParameterMap框架如何
3.3.1 工作 335
9.2 ResultMap框架及其說(shuō)明 338
9.2.1 ResultMap框架介紹 338
9.2.2 ResultMap框架說(shuō)明 339
9.2.3 ResultMap中的類說(shuō)明 340
9.2.4 ResultMap框架是如何
3.3.1 工作的 341
9.2.5 如何實(shí)現(xiàn)子查詢 342
9.2.6 延遲加載的實(shí)現(xiàn) 345
9.3 Statement框架及其說(shuō)明 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緩存的實(shí)現(xiàn) 361
9.3.6 自動(dòng)生成的主鍵 363
9.4 Sql框架及其說(shuō)明 367
9.4.1 Sql接口框架 367
9.4.2 SqlChild接口框架 368
9.4.3 Sql接口方法 368
9.4.4 靜態(tài)SQL的實(shí)現(xiàn) 369
9.4.5 簡(jiǎn)單動(dòng)態(tài)SQL的實(shí)現(xiàn) 370
9.4.6 動(dòng)態(tài)SQL語(yǔ)言的實(shí)現(xiàn) 372
9.5 數(shù)據(jù)對(duì)象轉(zhuǎn)換框架及其
9.5 說(shuō)明 379
9.5.1 DataExchange組件作用、
3.3.1 內(nèi)容和設(shè)計(jì)模式 380
9.5.2 Accessplan組件的
3.3.1 設(shè)計(jì)模式 393
9.5.3 DataExchange和Accessplan
3.3.1 在系統(tǒng)中如何實(shí)現(xiàn) 399
9.6 讀取源碼的收獲 404 
第10章 SQL Map緩存管理和實(shí)現(xiàn) 405
10.1 SQL Map緩存結(jié)構(gòu)和組成 406
10.2 系統(tǒng)如何使用緩存 407
10.2.1 緩存實(shí)現(xiàn)的序列圖和
3.3.1 說(shuō)明 407
10.2.2 CacheModel類緩存的
3.3.1 實(shí)現(xiàn) 409
10.2.3 唯一性CacheKey對(duì)象的
3.3.1 產(chǎn)生 411
10.3 緩存策略的程序?qū)崿F(xiàn) 412
10.3.1 FIFO緩存實(shí)現(xiàn) 413
10.3.2 LRU緩存實(shí)現(xiàn) 415
10.3.3 MEMORY緩存實(shí)現(xiàn) 417
10.3.4 OSCACHE緩存實(shí)現(xiàn) 420
10.4 擴(kuò)展緩存策略--增加先進(jìn)
10.4 后出緩存策略 422
10.5 讀取源碼的收獲 425 
第11章 TypeHandler類型轉(zhuǎn)化 426
11.1 Java的數(shù)據(jù)類型的說(shuō)明 426
11.2 TypeHandler組件的框架
11.2 結(jié)構(gòu) 427
11.3 TypeHandlerFactory的結(jié)構(gòu)、
11.3 作用和實(shí)現(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的實(shí)現(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常用工具的實(shí)現(xiàn) 441
12.1 Resources工具 441
12.1.1 資源加載 441
12.1.2 實(shí)例化類并緩存 445
12.2 Bean管理 447
12.2.1 ClassInfo類 447
12.2.2 Probe接口及其實(shí)現(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
參考文獻(xiàn) 509

本目錄推薦

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