用IBatis.net實(shí)現(xiàn)數(shù)據(jù)讀取

官方下載地址:http://www.mybatis.org/

潮安網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司2013年至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。

IBatis.net作用是把數(shù)據(jù)庫查詢與對(duì)象的屬性間建立映射關(guān)系。但它并不是一個(gè)實(shí)體關(guān)系映射工具,僅用于幫助程序人員建立實(shí)體和SQL語句或者存儲(chǔ)過程間的映射。因此只能叫半自動(dòng)OR/M工具。

IBatis.net的配置:

一、引用幾個(gè)DLL,注意在數(shù)據(jù)層引用即可。

用IBatis.net實(shí)現(xiàn)數(shù)據(jù)讀取

單獨(dú)使用映射的情況下,只需要引用IBatisNet.DataMapper.dll就可以了

其中IBatisNet.Common.dll和Castle.DynamicProxy.dll是必須的

COMMON是我自己的,不用管它

IBatisNet.DataAccess.dll是可選的,如果使用Data Access組件,則還需要添加對(duì)IBatisNet.DataAccess.dll的引用。

二、完成對(duì)組件的添加后,還需要添加三個(gè)XML文檔

1 providers.config ----DataMapper根據(jù)這個(gè)確定是什么類型數(shù)據(jù)庫(放在數(shù)據(jù)層)

2 SqlMap.xml ----數(shù)據(jù)映射文檔,里面包含了SQL語句(放在數(shù)據(jù)層)

3 SqlMap.config ----DataMapper的配置文檔,它詳細(xì)描述了工程中SqlMap.XML和providers.config文檔的位置,以及其他配置項(xiàng)(必須放在Web跟目錄下)。

先看SqlMap.config

 

<?xml version="1.0" encoding="utf-8"?>
<sqlMapConfigxmlns="http://ibatis.apache.org/dataMapper" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <settings>
<settinguseStatementNamespaces="true"/>//如果是true,那么寫數(shù)據(jù)查詢時(shí),查詢語句的名稱前要添加它的完整命名空間
<settingcacheModelsEnabled="true"/>//全局化配置DataMapper客戶能否啟用cache,默認(rèn)是true
</settings>
<providersembedded="DAL.providers.config, DAL"/> //指定providers.config的位置

<database>
<providername="sqlServer2.0"/> //如果使用默認(rèn)的數(shù)據(jù)提供者,這句可以不要,如果系統(tǒng)中使用多個(gè)數(shù)據(jù)庫,需要配置provider的內(nèi)容
<dataSourcename="ConnStr" connectionString="Data Source=.;Database=Test;User ID=sa;Password=123456;Connection Lifetime=3;Min Pool Size=1;Max Pool Size=50;MultipleActiveResultSets=true;"/> //數(shù)據(jù)庫鏈接字符串,
</database>

<sqlMaps>
<sqlMapembedded="DAL.Maps.UserInfo.xml, DAL"/> //程序的數(shù)據(jù)映射文件的位置,如果有多個(gè)XML,就寫多行,如果比較多,也可以當(dāng)一個(gè)單獨(dú)的XML中去寫,比如<sqlMapresource=”Maps/All.XML”/>,然后在ALL.xml再添加數(shù)據(jù)映射文件,這樣就實(shí)現(xiàn)了加載一組數(shù)據(jù)映射文件
</sqlMaps>
</sqlMapConfig>
復(fù)制代碼

 

具體文檔配置可在附件的DEMO中下載查看。

三、創(chuàng)建SqlMapper實(shí)例,這個(gè)是單例模式,文件名SqlMapper.CS,放在數(shù)據(jù)層中。

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using IBatisNet.Common.Utilities;
using IBatisNet.DataMapper;
using IBatisNet.DataMapper.Configuration;
using IBatisNet.DataMapper.SessionStore;
namespace DAL
{
public class SqlMapper
{
private static volatile ISqlMapper _mapper = null;

protected static void Configure(object obj)
{
_mapper = null;
}

protected static void InitMapper()
{
ConfigureHandler handler = new ConfigureHandler(Configure);
DomSqlMapBuilder builder = new DomSqlMapBuilder();
_mapper = builder.ConfigureAndWatch("SqlMap.config", handler);
_mapper.SessionStore = new HybridWebThreadSessionStore(_mapper.Id);
}

public static ISqlMapper Instance()
{
if (_mapper == null)
{
lock (typeof(SqlMapper))
{
if (_mapper == null) // double-check
{
InitMapper();
}
}
}
return _mapper;
}

public static ISqlMapper Get()
{
return Instance();
}
}
}
復(fù)制代碼

 

外界調(diào)用方法:

IList list = SqlMapper.Instance().QueryForObject<list>("UserInfo.GetCount", param);

因?yàn)槭菃卫?,第一次調(diào)用時(shí),DomSqlMapBuilder對(duì)象會(huì)通過查詢SqlMap.config來創(chuàng)建一個(gè)sqlMapper實(shí)例,以后調(diào)用就直接從緩存讀取了。

DomSqlMapBuilder.ConfigureAndWatch()方法負(fù)責(zé)監(jiān)視配置文件的更新情況,如果配置或者映射文件有更新,SqlMapper對(duì)象會(huì)重新載入并不重啟系統(tǒng)

 

整個(gè)配置已經(jīng)結(jié)束,具體可參考DEMO:DEMO下載

新聞名稱:用IBatis.net實(shí)現(xiàn)數(shù)據(jù)讀取
網(wǎng)頁鏈接:http://www.muchs.cn/article38/gjgjsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)App開發(fā)、手機(jī)網(wǎng)站建設(shè)軟件開發(fā)、微信公眾號(hào)自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司