亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iBATIS映射文件是什么

發布時間:2021-07-15 09:44:41 來源:億速云 閱讀:111 作者:chen 欄目:編程語言

本篇內容主要講解“iBATIS映射文件是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“iBATIS映射文件是什么”吧!

要了解iBATIS映射文件基礎,首先我們來看,iBATIS的核心就在于映射文件(Data Map XML File)。在映射文件里可以定義包括要執行各種SQL語句,存儲過程,輸入參數映射,返回結果映射,緩存機制,并且能通過幾種相對比較復雜的配置實現對象之間的關聯關系和延遲加載。這也是iBATIS區別ORM框架的,具備更靈活性,更高性能的關鍵所在。

配置文件可以寫得很簡單,也可以很復雜。復雜配置文件也是出于更好的設計,更好性能,更好擴展性方面的目的。再復雜的配置文件也是有限的,一個映射文件包括:Mapped Statements、Parameter Maps、Result Maps、Cache Models幾個主要的配置,還包括命名空間的配置,類型別名的配置。

iBATIS映射文件1.Mapped Statements :

顧名思義就是映射的語句聲明。它是整個iBATIS配置核心的核心,真正將被執行的SQL語句(或存儲過程)都是必須在這里被顯式聲明。在Mapped Statements里可以包含有:statement、select、insert、update、delete、procedure這6種不同的語句類型。從詞面理解相信就可以了解到這些類型功能的一大半了。statement可以包含所有類型的SQL語句(存儲過程),它是一個泛泛的語句配置,沒特別明確的職責,相反,其它5種類型的語句配置就是專門負責各種不同的SQL語句。下面這張圖列出了各種類型的語句的不同職責和調用方法。

iBATIS映射文件是什么

Mapped Statements語句調用圖

iBATIS映射文件2.Parameter Maps :

參數映射的配置,它是被用來向一個語句(statement)提供所需參數的配置。每一個Parameter Maps都有一個自己的ID,在需要的時候需要在statement 的 parameterMap屬性中提供它的ID。但是對一個語句來說,它并不是必須,在iBATIS中還支持內聯參數(Inline Parameter Maps)的形式,我們不需單獨寫一個Parameter Maps配置,只需要向parameterClass提供參數的類型,可以是元數據類型,復合數據類型,IDictionary數型的弱類型對象(使用key,value的鍵值對)。在內部訪問數據類型的時候只使用#property#的形式訪問對應的屬性值。

注意:在任何地方使用到的parameterClass類型如果是一個元數據類型(int,string etc),都需要使用#value#的形式的來訪問它的值。

iBATIS映射文件3.Result Maps :

返回結果的映射關系配置,就是列與屬性的對應關系。在statement中使用resultMap屬性來指定一個結果映射。對一個statement來說,resultMap也不是必須的,同樣的,它仍然可以被resultClass給代替,因為如果返回出結果數據集的列名跟數據對象的屬性相同的話,它會自動去匹配,但是它不保證所有列都被會被正確映射(當某列名在對象中找不對應的屬性名,這列值將不被處理)。而resultMap則不同,如果已經在resultMap中定義將要使用到列或屬性在結果集或數據對象中不存在,將會被認為是錯誤的,將會拋出異常。通過上面的表可以看到insert,update,delete三種語句類型是沒有resultMap和resultClass,因為原則上來說,它們的操作是沒有必要返回結果集。

注意:如果在一個statement中同時指定了resultMap和resultClass屬性的話,那將會優先使用resultMap。同時result Map也是一個實現對象復雜查詢功能的重要手段,如:result map的繼承(與discriminator配合使用),對象的1..1、1..N關系查詢。

iBATIS映射文件4.Cache Model :

緩存模型。使用在Cache Model中定義好的緩存機制,只需在查詢語句配置的cacheModel屬性就可以很容易地緩存查詢返回的數據集。在iBATIS中提供了三種的類型的緩存模式(Memory,LRU,FIFO)算法。三種算法主要在于靜態過期策略上的不同,而它們都有相同的動態過期依賴策略,即可以設置執行哪些statement時,緩存過期。

注意:iBATIS的緩存模型正常情況是非常好用的,但是因為緩存過期策略上的封裝性,它在多個服務器,負載平衡場景下還是有它的局限性。

到此,相信大家對“iBATIS映射文件是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海安县| 昌吉市| 东乌珠穆沁旗| 通渭县| 积石山| 潢川县| 武山县| 大石桥市| 巍山| 理塘县| 淳安县| 鄯善县| 温泉县| 都昌县| 泾川县| 安新县| 凭祥市| 三原县| 阿鲁科尔沁旗| 北辰区| 嫩江县| 灵山县| 县级市| 化隆| 临高县| 长沙市| 普宁市| 永城市| 乐陵市| 新乡市| 莱阳市| 洪洞县| 吐鲁番市| 揭阳市| 苏州市| 收藏| 邵阳县| 新闻| 百色市| 石家庄市| 巴塘县|