ibatis配置檔案解析之總體流程

2021-05-23 13:09:03 字數 1158 閱讀 8577

配置檔案解析是使用ibatis的第一步。那麼,ibatis是如何實現其配置檔案解析呢?本文將在較高的抽象層次上講述ibatis配置檔案解析的總體流程。

一切都從new sqlmapconfigparser().parse(reader);這條語句開始的。這條語句包含了ibatis配置檔案解析的全部內容。這條語句包括兩部分內容:建立sqlmapconfigparser物件和執行器parse方法。下面就分別來講述這兩部分內容究竟做了些什麼工作。

首先看一下sqlmapconfigparser物件建立時執行了哪些操作。

第乙個操作:建立nodeletparser物件,這個類定義了配置檔案解析的通用模板方法,即如何遍歷配置檔案並進行處理。

第二個操作:建立xmlparserstate物件,這個類的用途暫時可以先不關注。

第三個操作:執行建構函式。在建構函式中進行了配置檔案的驗證,以及nodelet的註冊。這裡就會有兩個疑問了,nodelet是幹什麼的,被註冊到**了。

先說明一下nodelet的作用,nodelet是ibatis節點解析的抽象介面,定義如下:

乙個nodelet介面的實現類能夠處以一類xml節點。然後就是nodelet實現類的註冊了,在sqlmapconfigparser類的建構函式中,將sqlmapconfig配置檔案相關的節點的解析類(nodelet的實現類)註冊到letmap中。這是letmap是乙個map,是nodeletparser的乙個屬性,其key為xpath,value為nodelet實現類的例項。這個註冊後letmap會在xml檔案解析中被使用。

以上這些操作都是在為配置檔案的解析做準備,接下來就要看ibatis是如何解析配置檔案了。先看sqlmapconfigparser的parse方法,它呼叫了nodeletparser的parse方法,下面看一下具體的實現**:

以上**即為ibatis解析配置檔案的主要流程了,至於單個節點如何解析和解析後資料儲存在什麼地方在這裡暫不做詳細討論。下面來總結一下ibatis解析配置檔案的大體思路:

1. 定義了nodelet介面,可以處理各種型別的xml節點。

2. 準備工作,註冊nodelet例項,將xpath和nodelet例項關聯起來。

3. 解析,在nodeletparser中,遞迴解析處理配置檔案,根據node資訊生成xpath,根據xpath取得nodelet例項,並執行其process方法,從而完成了配置檔案的解析工作。

ibatis 配置檔案

dbcpdatasourcefactory dbcpdatasourcefactory實現使用jakarta dbcp database connection pool 的datasource api提供連線池服務。適用於應用 web容器不提供datasource服務的情況,或執行乙個單獨的應用。d...

iBatis配置檔案中sqlmap異常

今天配置ibatis時遇到乙個異常 document root element sqlmap must match doctype root sqlmapconfig 最後找到問題原因是 pojo.xml配置檔案的檔案頭寫錯了。如果直接把sqlmapconfig.xml的檔案頭複製到pojo.xml...

在ibatis 配置檔案的使用

如果要求借助ibatis在xml檔案中寫出分數小於72分的學生姓名,那麼xml檔案中相應的sql語句為 select name from student score table 非select name from student score table where score 72 為什麼第二種方式...