溫馨提示×

溫馨提示×

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

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

怎么淺談IBATIS.net中兩大常用的DAO

發(fā)布時間:2021-10-28 09:52:11 來源:億速云 閱讀:117 作者:柒染 欄目:編程語言

這篇文章給大家介紹怎么淺談IBATIS.net中兩大常用的DAO,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

在iBATIS.中我們可以靈活的選擇DAO類型,也就是可以在底層選用不同的數(shù)據(jù)庫操作方式。有常規(guī)方式、配置文件的方式、Hibernet的方式等:

1、常規(guī)方式

和我們之前的ADO.net開發(fā)較為類似,都是將sql語句寫在cs代碼中進行調(diào)用:

首先通過配置文件初始化:

DomDaoManagerBuilder builder = new DomDaoManagerBuilder();  builder.Configure("dao" + "_" + ConfigurationManager.AppSettings["database"] + "_"      + ConfigurationManager.AppSettings["providerType"] + ".config");  daoManager = DaoManager.GetInstance("SimpleDao");

相對應(yīng)的配置文件如下:

﹤context id="SimpleDao" default="true"﹥      ﹤properties resource="../../database.config"/﹥            ﹤!-- ==== SqlClient configuration (default provider) =========    --﹥      ﹤database﹥          ﹤!-- Optional ( default ) --﹥          ﹤provider name="sqlServer1.1"/﹥          ﹤dataSource name="iBatisNet" connectionString="data source=${datasource};database=${database};user id=${userid};password=${password};connection reset=false;connection lifetime=5; min pool size=1; max pool size=50"/﹥      ﹤/database﹥            ﹤daoFactory﹥          ﹤dao interface="IBatisNet.DataAccess.Test.Dao.Interfaces.IAccountDao, IBatisNet.DataAccess.Test" implementation="IBatisNet.DataAccess.Test.Dao.Implementations.Ado.AccountDao, IBatisNet.DataAccess.Test"/﹥      ﹤/daoFactory﹥  ﹤/context﹥

然后在對應(yīng)的,比如AccountDao中寫具體的查詢sql等

2、配置方式

將sql語句放在配置文件中,書寫和修改較靈活,這也是比較常用的方式

首先通過配置文件初始化:

DomDaoManagerBuilder builder = new DomDaoManagerBuilder();  builder.Configure("dao" + "_" + ConfigurationManager.AppSettings["database"] + "_"      + ConfigurationManager.AppSettings["providerType"] + ".config");  daoManager = DaoManager.GetInstance("SqlMapDao");

相對應(yīng)的配置文件如下:

﹤context id="SqlMapDao"﹥      ﹤properties resource="../../database.config"/﹥      ﹤!-- ==== SqlClient configuration =========    --﹥      ﹤database﹥          ﹤dataSource name="iBatisNet" connectionString="data source=${datasource};database=${database};user id=${userid};password=${password};connection reset=false;connection lifetime=5; min pool size=1; max pool size=50"/﹥      ﹤/database﹥                    ﹤daoSessionHandler id="SqlMap"﹥          ﹤!--             --﹥          ﹤property name="resource" value="SqlMap_MSSQL_SqlClient.config"/﹥           ﹤!-- ﹤property name="url" value="E:\Projet\iBatis\trunk\cs\mapper\IBatisNet.DataAccess.Test\bin\Debug\SqlMap_MSSQL_SqlClient.config"/﹥          --﹥          ﹤!--           ﹤property name="embedded" value="bin.Debug.SqlMap_MSSQL_SqlClient.config, IBatisNet.DataAccess.Test"/﹥           --﹥      ﹤/daoSessionHandler﹥            ﹤daoFactory﹥          ﹤dao interface="IBatisNet.DataAccess.Test.Dao.Interfaces.IAccountDao, IBatisNet.DataAccess.Test" implementation="IBatisNet.DataAccess.Test.Dao.Implementations.DataMapper.AccountDao, IBatisNet.DataAccess.Test"/﹥      ﹤/daoFactory﹥  ﹤/context﹥

然后可以將每一張表的sql語句單獨放在一個配置文件中,比如:

﹤select id="GetAccountsDynamic" resultMap="account-result"  parameterClass="Hashtable" ﹥      select top $MaximumAllowed$ * from Accounts      ﹤dynamic prepend="where"﹥              ﹤isParameterPresent﹥              ﹤isNotEmpty prepend="and" property="FirstName" ﹥                      Account_FirstName LIKE '%$FirstName$%'              ﹤/isNotEmpty﹥              ﹤isNotEmpty prepend="and" property="LastName" ﹥                      Account_LastName LIKE '%$LastName$%'              ﹤/isNotEmpty﹥              ﹤isNotEmpty prepend="and" property="EmailAddress"  ﹥                      Account_Email LIKE '%$EmailAddress$%'              ﹤/isNotEmpty﹥              ﹤/isParameterPresent﹥          ﹤/dynamic﹥          order by Account_LastName  ﹤/select﹥

3、使用Hibernet方式

也就是使用Hibernet的數(shù)據(jù)庫操作。

那么IBATIS.net中DAO的介紹就到這里,是不是對常用DAO有所了解了呢?

關(guān)于怎么淺談IBATIS.net中兩大常用的DAO就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI