IBatisNet使用教程

來源:互聯網
上載者:User

標籤:

   1、是資料持久層,對應.NET方向的有Ibatis.NET,只要用來處理資料庫表結構和程式實體之間映射,ado.net是用來處理和資料庫直接通訊的,取出資料(object,int,string,dataset,datatable等常規類型),通常程式中如果用到MOEDL實體,都需要手動寫代碼去做類型轉換(把datatable的欄位賦值到model對應欄位),用了資料持久層,這一部就可以省略了,Ibatis.NET可以直接把資料庫表欄位對應為實體模型,操作簡便了。

  2、IBatis.net 是2001年發起的開源項目,它是一個輕量級的ORM架構,現在IBatisNET已經是屬於Apache下的一個子項目了。

  3、DataMapper:通過配置映射關係的xml業務對象與SQL語句和預存程序進行映射.

  4、DataAcces:簡單的說就是IBatis的資料訪問層.

  板塊管理 填寫版跨資訊 選擇板塊 判斷資訊是否正確 修改板塊資訊 是否刪除 新增板塊 刪除板塊

  5、 平常做企業級應用,需求變化是經常的事,而很多基礎代碼重複也是很讓人頭疼的問題。所以很多人會使用一些ORM架構來增強項目的可維護性、可擴充性。IBatis.Net就是一個比較易用的ORM架構,使用起來較為方便、靈活。IBatis.Net是從Ibatis的Java版本移植過來的.NET版本。iBATIS作為一種獨特的Data Mapper,使用SQL映射的方式將對象持久化至關係型資料庫。簡單的理解就是它將我們在資料訪問層實現的C#邏輯代碼,變為通過關聯式資料庫與對象的映射,將SQL邏輯放到外部的XML設定檔中,以方便以後的維護。

  這個架構有兩個主要的組成部分,一個是SQL Maps,另一個是Data Access Objects。Sql Maps是這個架構的核心部分,通過使用Sql Maps你可以顯著的節約資料庫操作的代碼量。SQL Maps使用一個簡單的XML檔案來實現從實體到SQL statements的映射。使用DAO,封裝了對資料的訪問,你可以動態配置你的應用程式來訪問不同的實體儲存機制。隱藏持久性層實現的細節,Data Access Objects允許你通過一個簡單介面的來操作資料。

     

IBatisNet 邏輯結構 

 

1、建立項目

2、在項目中添加dll檔案     IBatisNet.Common.dll   IBatisNet.DataMapper.dll   IBatisNet.DataAccess.dll3、在項目中添加設定檔 SqlMap.config
<?xml version="1.0" encoding="utf-8"?><sqlMapConfig   xmlns="http://ibatis.apache.org/dataMapper"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">    <!-- 常量屬性,resource 通過單獨檔案properties.config載入-->   <!--<properties resource="properties.config"/>--> <!--這個東西是變數用的,這裡以最簡單的實現說明,因此注釋-->   <!-- 常量屬性,embedded 通過程式集資源中 載入    <properties embedded="database.config, IBatisNetDemo"/>-->   <settings>    <setting useStatementNamespaces="true"/>   <!--是否啟用命名空間-->  </settings>    <providers resource="providers.config"/>   <!--引入資料庫驅動檔案-->      <!-- Database connection information -->  <!--資料庫連接字串-->    <!--<database>        --><!--<provider name="sqlServer2.0"/>        <dataSource name="IBatisNet" connectionString="Data Source=DESKTOP-1ORC3PV;Initial Catalog=test;Integrated Security=True"/>--><!--    <provider name="oracleClient1.0"/>      <dataSource name="IBatisNet" connectionString="Data Source=LHORCL;Persist Security Info=True;User ID=linsiontest;Password=123456;Unicode=True" providerName="System.Data.OracleClient"/>     </database>-->  <database>    <provider name="OracleClient2.0"/>    <dataSource name="orcl" connectionString="Data Source=HDORCL;Persist Security Info=True;User ID=oa;Password=oa;Unicode=True"/>  </database>     <sqlMaps>  <!--節點就是配置一些sql語句以及實體映射的xml檔案-->    <sqlMap resource="Maps/Account.xml" /> <!--這個是指定對應檔的位置-->    </sqlMaps> </sqlMapConfig>  

 

節點說明① properties 節點可以根據需要配置一些常量屬性。如果這些屬性有很多的話可以單獨寫一個檔案裡面,再通過resource(或url, embedded分別是引用url和編譯在程式中的資源檔)屬性引用進來。

參數

描述

resource

指定the properties檔案從application的根目錄進行載入

resource="properties.config"

url

指定the properties檔案從檔案的絕對路徑進行載入

url="c:\Web\MyApp\Resources\properties.config"

或者

url="file://c:\Web\MyApp\Resources\properties.config"

embedded

指定檔案可以作為程式集的資源檔進行載入‘

embedded=" database.config, IBatisNetDemo”

②setting節點

參數

描述

cacheModelsEnabled

是否啟用sqlMap上的緩衝機制

Example: cacheModelsEnabled=”true”

Default: true (enabled)

useStatementNamespaces

是否使用Satement命名空間,這裡的命名空間指的是對應檔中sqlMap節點的namespace屬性

Example: useStatementNamespaces=”false”

Default: false (disabled)

validateSqlMap

是配置要不要啟示SqlMapConfig.xsd schema驗證對應檔.

Example: validateSqlMap=”false”

Default: false (disabled)

③provider節點配置資料驅動提供類設定檔的路徑和檔案名稱,通過resource(或url, embedded分別是引用url和編譯在程式中的資源檔)屬性引用進來,參數的含義同properties。ADO.NET是通過資料訪問提供者(Provider)訪問資料庫。IBatisNet使用的是外掛程式式結構來使用這些資料庫提供者,每一個Provider對應於providers.config檔案中定義的一個provider項。 通過設定這個檔案中的幾個參數來決定使用哪個資料庫提供者。提供者要求安裝相關類庫,每一個provider 元素都有"enabled" 屬性來控制是否啟用個providers. 一個provider 可以通過 “default“屬性標識為預設的提供者。

 

④database節點資料庫的資訊,包括使用哪些資料庫驅動和資料連線字串的配置。    ⑤typeHandler節點定義資料庫類型到dotnet資料類型的處理,不同的資料庫都有一些特殊的資料庫欄位類型需要特殊處理,就可以通過這個功能實現。比如說Blob欄位在不同的資料庫中處理不一樣。大家可以去看看Ibatisnet原始碼就清楚這個功能的實現原理,對於我們的設計會有很大的啟發⑥salMapssqlMap節點指定了對應檔的位置,配置中可以出現多個sqlMap節點,以指定項目內所包含的所有對應檔。 4、建立實體類定義實體類,該對象類將與資料庫進行映射。   5、添加對應檔相對於Nhibernate等ORM實現來說,IBatisnet的映射配置更為直接,下面是設定檔內容:

 

IBatisNet使用教程

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.