出版時(shí)間:2010 年6月 出版社:電子工業(yè)出版社 作者:任鋼 頁(yè)數(shù):510
Tag標(biāo)簽:無(wú)
內(nèi)容概要
iBATIS是一種比較流行的ORM框架,本書(shū)全面介紹其結(jié)構(gòu)體系和分析其源程序代碼,該框架的核心包括兩個(gè)組件,一個(gè)是iBATIS DAO,另一個(gè)是iBATIS SQL Map。 本書(shū)分為三個(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),勾畫(huà)出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)?! ≡谠创a剖析過(guò)程中,本書(shū)采用了代碼注釋、UML分析和設(shè)計(jì)、GoF設(shè)計(jì)模式抽象和歸類、代碼跟蹤和案例的講解和說(shuō)明。其目的是讓讀者全方位地了解iBATIS的實(shí)現(xiàn)框架和實(shí)現(xiàn)手段。一方面讓讀者理解開(kāi)發(fā)者的思路,另一方面也是幫助讀者在實(shí)際工作中能應(yīng)用這些策略、方法和編程技巧。 本書(shū)適用于軟件設(shè)計(jì)師、架構(gòu)師和一些有較好Java基礎(chǔ)的開(kāi)發(fā)人員,既可以作為iBATIS的學(xué)習(xí)指南,也可以給軟件架構(gòu)師在設(shè)計(jì)方面進(jìn)行參考。
作者簡(jiǎn)介
任鋼,軟件碩士,高級(jí)工程師,從事了十多年的企業(yè)級(jí)應(yīng)用開(kāi)發(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)和部門(mén)總監(jiān)等,現(xiàn)任文思創(chuàng)新公司的技術(shù)總監(jiān)。
書(shū)籍目錄
第一部分 iBATIS的基礎(chǔ)知識(shí) 第1章 iBATIS概述 21.1 iBATIS概論 21.2 ORM模型介紹 41.2.1 什么是ORM 41.2.2 ORM的實(shí)現(xiàn)方式 41.2.3 常用的ORM框架 81.2.4 ORM模型和持久層框架 91.3 iBATIS的組件和實(shí)現(xiàn)的功能 101.3.1 iBATIS的DAO組件 101.3.2 iBATIS SQL Map組件 11 第2章 相關(guān)的技術(shù)背景和基礎(chǔ)知識(shí) 132.1 面向?qū)ο蠛蚒ML基本知識(shí) 132.1.1 面向?qū)ο蠡A(chǔ) 132.1.2 UML基礎(chǔ)知識(shí) 152.1.3 UML圖 162.1.4 類和接口以及之間的關(guān)系 182.2 Java基礎(chǔ)知識(shí) 262.2.1 Java的I/O操作 272.2.2 Java解析XML文檔 272.2.3 Java的線程管理 292.2.4 Java的反射機(jī)制 312.2.5 Java的動(dòng)態(tài)Proxy 322.2.6 JDBC和JDBC擴(kuò)展 332.2.7 JavaBean 342.2.8 JNDI 352.3 數(shù)據(jù)庫(kù)相關(guān)基礎(chǔ)知識(shí) 372.3.1 SQL 372.3.2 數(shù)據(jù)庫(kù)事務(wù)管理 382.4 Java EE規(guī)范相關(guān)知識(shí) 392.5 開(kāi)源ORM框架 402.5.1 Hibernate 402.5.2 TopLink 422.5.3 Apache OJB 422.6 其他開(kāi)源框架 432.6.1 與Log相關(guān)的開(kāi)源框架 432.6.2 OSCache 442.6.3 Commons-DBCP數(shù)據(jù)庫(kù)連2.6.3 接池 452.7 GoF的23種設(shè)計(jì)模式 45 第3章 安裝和配置iBATIS源碼 483.1 安裝和配置iBATIS SQL Map3.1 源碼環(huán)境 483.2 安裝和配置iBATIS DAO3.2 源碼環(huán)境 503.3 安裝和配置iBATIS JPetStore3.3 源碼環(huán)境 513.3.1 iBATIS JPetStore源碼環(huán)境3.3.1 配置 513.3.2 創(chuàng)建iBATIS JPetStore的3.3.1 應(yīng)用 533.3.3 安裝iBATIS JPetStore的3.3.1 MySQL數(shù)據(jù)庫(kù) 533.3.4 安裝MySQL數(shù)據(jù)庫(kù)的管理3.3.1 工具 583.3.5 配置成功的標(biāo)志 60 第二部分 iBATIS DAO框架 源碼剖析 第4章 iBATIS DAO體系結(jié)構(gòu)和第4章 實(shí)現(xiàn) 644.1 iBATIS DAO基本結(jié)構(gòu) 644.1.1 Java EE核心設(shè)計(jì)模式4.1.1 --DAO模式介紹 654.1.2 iBATIS DAO包文件和組件4.1.1 結(jié)構(gòu) 664.1.3 使用iBATIS DAO工作4.1.1 流程 674.2 iBATIS DAO外部接口和4.2 實(shí)現(xiàn) 684.2.1 iBATIS DAO框架外部4.2.1 接口 684.2.2 iBATIS DAO Template API4.2.2 結(jié)構(gòu)和說(shuō)明 694.3 DAO配置文件讀取 724.3.1 dao.xml的格式說(shuō)明 724.3.2 dao.xml文件的讀取過(guò)程 734.3.3 如何驗(yàn)證dao.xml文件 824.3.4 dao.xml配置文件實(shí)例4.4.1 說(shuō)明 844.4 iBATIS DAO引擎實(shí)現(xiàn) 874.4.1 DAO業(yè)務(wù)實(shí)現(xiàn)的序列圖和4.4.1 說(shuō)明 874.4.2 iBATIS DAO組件管理 904.4.3 iBATIS DAO事務(wù)管理4.4.1 實(shí)現(xiàn) 944.5 基于iBATIS DAO SqlMap的4.5 實(shí)例說(shuō)明 1244.6 讀取源碼的收獲 132 第三部分 iBATIS的底層平臺(tái)--iBATIS SQL Map的分析 第5章 iBATIS SQL Map體系結(jié)構(gòu) 第5章 和剖析 1345.1 SQL Map實(shí)現(xiàn)的功能和5.1 原理 1345.2 SQL Map組件的包結(jié)構(gòu)和5.2 文件結(jié)構(gòu) 1365.3 SQL Map的組件結(jié)構(gòu) 137 第6章 SQL Map配置信息的讀取 1396.1 XML文件的驗(yàn)證處理 1396.1.1 XML驗(yàn)證處理的3.3.1 通用模式 1396.1.2 iBATIS SQL Map的XML6.1.2 驗(yàn)證 1426.2 解析SQL Map配置文件 1456.2.1 SqlMapConfig.xml的格式3.3.1 說(shuō)明 1456.2.2 SqlMapConfig.xml文件讀取3.3.1 總體說(shuō)明 1476.2.3 基于設(shè)計(jì)模式中策略模式3.3.1 的數(shù)據(jù)執(zhí)行 1526.2.4 基于遞歸和路徑來(lái)實(shí)現(xiàn)配置3.3.1 文件的全部遍歷 1576.2.5 XmlParserState對(duì)象在解析3.3.1 SQL Map XML配置文件的3.3.1 協(xié)調(diào)者角色 1596.2.6 配置的一級(jí)門(mén)面3.3.1 SqlMapConfiguration3.3.1 實(shí)例化對(duì)象 1626.2.7 一級(jí)應(yīng)用門(mén)面3.3.1 SqlMapExecutorDelegate3.3.1 實(shí)例化對(duì)象 1646.2.8 SQL Map配置文件中節(jié)點(diǎn)3.3.1 解析的通用處理 1656.2.9 數(shù)據(jù)庫(kù)事務(wù)節(jié)點(diǎn)的解析和3.3.1 轉(zhuǎn)化 1676.2.10 配置文件其他節(jié)點(diǎn)的3.3.1 解析和轉(zhuǎn)化 1706.3 解析SQL Map映射文件 1786.3.1 SQL Map XML映射3.3.1 文件格式 1786.3.2 SQL Map XML映射文件3.3.1 讀取總體說(shuō)明 1826.3.3 XmlParserState對(duì)象解析3.3.1 SQL Map映射文件的3.3.1 協(xié)調(diào)者角色 1856.3.4 cacheModel節(jié)點(diǎn)的解析3.3.1 和轉(zhuǎn)化 1876.3.5 parameterMap節(jié)點(diǎn)的解析3.3.1 和轉(zhuǎn)化 1946.3.6 resultMap節(jié)點(diǎn)的解析3.3.1 和轉(zhuǎn)化 2006.3.7 statement類型節(jié)點(diǎn)的解析3.3.1 和轉(zhuǎn)化 2126.3.8 對(duì)SQL的處理 2236.4 抽象出通用的XML解析6.4 框架 2296.5 讀取源碼的收獲 235 第7章 SQL Map引擎實(shí)現(xiàn)框架 2367.1 SQL Map引擎實(shí)現(xiàn)框架的7.1 組成 2367.2 業(yè)務(wù)運(yùn)行過(guò)程和介紹 2397.2.1 總體業(yè)務(wù)運(yùn)行過(guò)程序3.3.1 列圖 2397.2.2 系統(tǒng)總體運(yùn)行簡(jiǎn)化說(shuō)3.3.1 明圖 2407.3 業(yè)務(wù)實(shí)現(xiàn)類的分析 2427.3.1 業(yè)務(wù)實(shí)現(xiàn)類 2437.3.2 配置信息類 2547.3.3 運(yùn)行狀態(tài)信息類 2567.4 業(yè)務(wù)實(shí)現(xiàn)分析 2587.4.1 業(yè)務(wù)實(shí)現(xiàn)兩個(gè)階段的3.3.1 分析 2587.4.2 查詢類業(yè)務(wù)實(shí)現(xiàn)過(guò)程 2597.4.3 單事務(wù)業(yè)務(wù)操作實(shí)現(xiàn)3.3.1 過(guò)程 2647.4.4 聯(lián)合事務(wù)處理實(shí)現(xiàn)過(guò)程 2667.4.5 存儲(chǔ)過(guò)程的處理 2727.4.6 批處理及其實(shí)現(xiàn) 2757.4.7 全局JTA事務(wù)的處理 2777.4.8 全局外部事務(wù)的處理 2787.4.9 用戶自定義數(shù)據(jù)庫(kù)3.3.1 Connection處理 2797.5 讀取源碼的收獲 280 第8章 SQL Map數(shù)據(jù)庫(kù)處理 2818.1 SQL Map的transaction8.1 Manager 2828.1.1 Java事務(wù)簡(jiǎn)介 2828.1.2 SQL Map的transaction3.3.1 Manager概述 2828.1.3 SQL Map事務(wù)管理的3.3.1 設(shè)計(jì)模式 2838.2 系統(tǒng)如何調(diào)用事務(wù)管理和8.2 SQL Map事務(wù)策略 2858.2.1 SQL Map如何調(diào)用事務(wù) 2858.2.2 Java事務(wù)類型 2868.2.3 SQL Map中JDBC事務(wù)3.3.1 實(shí)現(xiàn) 2908.2.4 SQL Map中JTA事務(wù)3.3.1 實(shí)現(xiàn) 2938.2.5 SQL Map的External事務(wù)3.3.1 實(shí)現(xiàn) 2978.2.6 SQL Map的用戶事務(wù)3.3.1 實(shí)現(xiàn) 2988.3 SQL Map的DataSource8.3 策略 2988.3.1 關(guān)于DataSource的說(shuō)明 2988.3.2 SQL Map的DataSource3.3.1 結(jié)構(gòu)和內(nèi)容 3008.3.3 SIMPLE策略的實(shí)現(xiàn) 3028.3.4 DBCP策略實(shí)現(xiàn) 3028.3.5 JNDI策略實(shí)現(xiàn) 3048.4 SQL Map自定義DataSource8.4 實(shí)現(xiàn) 3068.4.1 DataSource接口的結(jié)構(gòu) 3068.4.2 實(shí)現(xiàn)DataSource的設(shè)計(jì)3.3.1 思路 3068.4.3 SimpleDataSource設(shè)計(jì)和3.3.1 實(shí)現(xiàn) 3088.5 SQL Map擴(kuò)展DataSource8.5 為C3P0 3228.6 SQL Map如何進(jìn)行批處理 3248.7 SQL Map事務(wù)隔離的實(shí)現(xiàn) 3278.7.1 JDBC事務(wù)隔離概述 3278.7.2 SQL Map的事務(wù)隔離的3.3.1 實(shí)現(xiàn) 3288.8 SQL Map事務(wù)狀態(tài)的實(shí)現(xiàn) 3298.9 讀取源碼的收獲 330 第9章 SQL Map中Mapping實(shí)現(xiàn) 3329.1 ParameterMap框架及其9.1 說(shuō)明 3339.1.1 ParameterMap總體框架3.3.1 說(shuō)明 3339.1.2 ParameterMap組件中各個(gè)3.3.1 類介紹 3349.1.3 ParameterMap框架如何3.3.1 工作 3359.2 ResultMap框架及其說(shuō)明 3389.2.1 ResultMap框架介紹 3389.2.2 ResultMap框架說(shuō)明 3399.2.3 ResultMap中的類說(shuō)明 3409.2.4 ResultMap框架是如何3.3.1 工作的 3419.2.5 如何實(shí)現(xiàn)子查詢 3429.2.6 延遲加載的實(shí)現(xiàn) 3459.3 Statement框架及其說(shuō)明 3489.3.1 Statement介紹 3489.3.2 Statement框架總體結(jié)構(gòu) 3499.3.3 Statement組件中的類3.3.1 介紹 3509.3.4 MappedStatement是如何3.3.1 工作的 3549.3.5 Statement緩存的實(shí)現(xiàn) 3619.3.6 自動(dòng)生成的主鍵 3639.4 Sql框架及其說(shuō)明 3679.4.1 Sql接口框架 3679.4.2 SqlChild接口框架 3689.4.3 Sql接口方法 3689.4.4 靜態(tài)SQL的實(shí)現(xiàn) 3699.4.5 簡(jiǎn)單動(dòng)態(tài)SQL的實(shí)現(xiàn) 3709.4.6 動(dòng)態(tài)SQL語(yǔ)言的實(shí)現(xiàn) 3729.5 數(shù)據(jù)對(duì)象轉(zhuǎn)換框架及其9.5 說(shuō)明 3799.5.1 DataExchange組件作用、3.3.1 內(nèi)容和設(shè)計(jì)模式 3809.5.2 Accessplan組件的3.3.1 設(shè)計(jì)模式 3939.5.3 DataExchange和Accessplan3.3.1 在系統(tǒng)中如何實(shí)現(xiàn) 3999.6 讀取源碼的收獲 404 第10章 SQL Map緩存管理和實(shí)現(xiàn) 40510.1 SQL Map緩存結(jié)構(gòu)和組成 40610.2 系統(tǒng)如何使用緩存 40710.2.1 緩存實(shí)現(xiàn)的序列圖和3.3.1 說(shuō)明 40710.2.2 CacheModel類緩存的3.3.1 實(shí)現(xiàn) 40910.2.3 唯一性CacheKey對(duì)象的3.3.1 產(chǎn)生 41110.3 緩存策略的程序?qū)崿F(xiàn) 41210.3.1 FIFO緩存實(shí)現(xiàn) 41310.3.2 LRU緩存實(shí)現(xiàn) 41510.3.3 MEMORY緩存實(shí)現(xiàn) 41710.3.4 OSCACHE緩存實(shí)現(xiàn) 42010.4 擴(kuò)展緩存策略--增加先進(jìn)10.4 后出緩存策略 42210.5 讀取源碼的收獲 425 第11章 TypeHandler類型轉(zhuǎn)化 42611.1 Java的數(shù)據(jù)類型的說(shuō)明 42611.2 TypeHandler組件的框架11.2 結(jié)構(gòu) 42711.3 TypeHandlerFactory的結(jié)構(gòu)、11.3 作用和實(shí)現(xiàn) 42811.3.1 TypeHandlerFactory的3.3.1 別名處理 42811.3.2 TypeHandlerFactory容器3.3.1 的數(shù)據(jù)類型轉(zhuǎn)化 43011.4 TypeHandler的實(shí)現(xiàn) 43111.4.1 一般類型的處理 43311.4.2 Sql類型的處理 43411.4.3 通用類型的處理 43611.4.4 定制數(shù)據(jù)類型的轉(zhuǎn)化 43811.5 讀取源碼的收獲 440 第12章 iBATIS常用工具的實(shí)現(xiàn) 44112.1 Resources工具 44112.1.1 資源加載 44112.1.2 實(shí)例化類并緩存 44512.2 Bean管理 44712.2.1 ClassInfo類 44712.2.2 Probe接口及其實(shí)現(xiàn) 45312.3 Log管理 46812.4 調(diào)試信息工具 47212.5 ScriptRunner的應(yīng)用 47212.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
編輯推薦
iBATIS——目前主流的ORM框架 Java軟件設(shè)計(jì)師、架構(gòu)師案頭必備參考用書(shū)
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版