天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

ORM映射框架總結(jié)--數(shù)據(jù)庫操作庫(精修版)

1.       ORM數(shù)據(jù)庫操作原理

前面已經(jīng)介紹過了個(gè)人ORM映射框架中的三個(gè)核心庫:

實(shí)體數(shù)據(jù)庫 映射特性關(guān)系:

http://www.cnblogs.com/qingyuan/archive/2010/04/02/1702998.html

 實(shí)體分析器:

http://www.cnblogs.com/qingyuan/archive/2010/04/05/1704546.html

Sql 語句生成組建:

http://www.cnblogs.com/qingyuan/archive/2010/04/16/1713658.html

至于這篇文章也就是這四個(gè)組件中的最后一個(gè)了------- 數(shù)據(jù)庫操作庫。目前.NET 中對(duì)于數(shù)據(jù)庫操作的模板或組件太多了,先不說微軟的Linqto SQL,Linq to Entity, 還有開源組織的Hibernate克隆版NHibernate,以及前些天突然冒出來的ALinq, 號(hào)稱壓過Linq,有時(shí)間再研究一下。其實(shí)這些看是強(qiáng)大的組件框架,在其外表下面都是如出一轍,他們都是在ADO.NET中進(jìn)行的封裝。

不過在這個(gè)數(shù)據(jù)庫操作中,都是ADO.NET進(jìn)行數(shù)據(jù)庫操作,但是對(duì)于對(duì)象的查詢,都是泛化了的類型,也就是說我們不知道具體查詢的是那張表,或者說是查詢結(jié)果集是封裝到那個(gè)對(duì)象,這就是本文要解決的問題。

  2.       ADO.NET 介紹

感覺在這里進(jìn)行ADO.NET的講解似乎是多次一舉,我相信ADO.NET是每個(gè)ASP.NET 程序員必會(huì)的基本技能。但是這里還是簡單介紹其五個(gè)核心對(duì)象吧。

Connection: Connection對(duì)象主要是開啟程序和數(shù)據(jù)庫之間的連結(jié)。沒有利用連結(jié)對(duì)象將數(shù)據(jù)庫打開,是無法從數(shù)據(jù)庫中取得數(shù)據(jù)的。

CommandCommand 對(duì)象主要可以用來對(duì)數(shù)據(jù)庫發(fā)出一些指令,例如可以對(duì)數(shù)據(jù)庫下達(dá)查詢、新增、修改、刪除數(shù)據(jù)等指令,以及呼叫存在數(shù)據(jù)庫中的預(yù)存程序等。

DataAdapter: DataSetCommand對(duì)象主要是在數(shù)據(jù)源以及DataSet 之間執(zhí)行數(shù)據(jù)傳輸?shù)墓ぷ鳎梢酝高^Command 對(duì)象下達(dá)命令后,并將取得的數(shù)據(jù)放入DataSet 對(duì)象中。

DataSetDataSet 這個(gè)對(duì)象可以視為一個(gè)暫存區(qū)(Cache),可以把從數(shù)據(jù)庫中所查詢到的數(shù)據(jù)保留起來,甚至可以將整個(gè)數(shù)據(jù)庫顯示出來。DataSet 的能力不只是可以儲(chǔ)存多個(gè)Table 而已,還可以透過DataSetCommand 對(duì)象取得一些例如主鍵等的數(shù)據(jù)表結(jié)構(gòu),并可以記錄數(shù)據(jù)表間的關(guān)聯(lián)。DataSet 對(duì)象可以說是ADO.NET 中重量級(jí)的對(duì)象,這個(gè)對(duì)象架構(gòu)在DataSetCommand 對(duì)象上,本身不具備和數(shù)據(jù)源溝通的能力。

DataReader: 當(dāng)我們只需要循序的讀取數(shù)據(jù)而不需要其它操作時(shí),可以使用DataReader 對(duì)象。DataReader對(duì)象只是一次一筆向下循序的讀取數(shù)據(jù)源中的數(shù)據(jù),而且這些數(shù)據(jù)是只讀的,并不允許作其它的操作。因?yàn)?/span>DataReader 在讀取數(shù)據(jù)的時(shí)候限制了每次只讀取一筆,而且只能只讀,所以使用起來不但節(jié)省資源而且效率很好.

老生常談的說了一遍ADO.NET 的五個(gè)核心對(duì)象,這里主要目的是為了更好的了解此篇文章。我想現(xiàn)在用Linq to SQL Linq to Entity 的人太多了,或許都忘記了ADO.NET 的基本操作,其實(shí)我本人也是如此,一段時(shí)間不是用好多忘記了,這里再次復(fù)習(xí)一遍ADO.NET 能更好的理解此篇文章。

  3.       數(shù)據(jù)庫加載驅(qū)動(dòng)操作接口

該數(shù)據(jù)庫操作接口很簡單,就是封裝了一些數(shù)據(jù)庫操作的常用接口和命令,并定義了一些數(shù)據(jù)庫連接和關(guān)閉的方法,并控制了數(shù)據(jù)庫事務(wù)提交和回滾的方法。不過在這里的方法實(shí)現(xiàn)中我并沒有對(duì)事務(wù)進(jìn)行處理,如果對(duì)本文有興趣的人可以在后期的文章中關(guān)注,我會(huì)對(duì)此進(jìn)行補(bǔ)充。

下面簡單看看數(shù)據(jù)庫加載驅(qū)動(dòng)接口:

數(shù)據(jù)庫加載驅(qū)動(dòng)接口 1 /**
 2  * 2010-2-2
 3  * 
 4  * 情 緣
 5  * 
 6  * 數(shù)據(jù)庫提供加載驅(qū)動(dòng)接口,該接口繼承IDisposable,
 7  * 用于釋放對(duì)象占用的內(nèi)存。該接口定義了數(shù)據(jù)庫鏈接
 8  * 語句,鏈接對(duì)象,執(zhí)行命令,適配器模式接口。同時(shí)
 9  * 還提供了打開數(shù)據(jù)庫連接和關(guān)閉的方法,還有三個(gè)方
10  * 法是用于控制數(shù)據(jù)庫操作事務(wù)
11  * 
12  * */
13 
14  using System;
15  using System.Collections.Generic;
16  using System.Linq;
17  using System.Text;
18  using System.Data;
19 
20  namespace CommonData.Data.Core
21 {
22     public interface IDbProvider:IDisposable
23     {
24         /// <summary>
25         /// 數(shù)據(jù)庫鏈接語句
26         /// </summary>
27          string ConnectionString { getset; }
28 
29         /// <summary>
30         /// 數(shù)據(jù)庫連接對(duì)象
31         /// </summary>
32          IDbConnection Connection { getset; }
33 
34         /// <summary>
35         /// 數(shù)據(jù)庫操作命令
36         /// </summary>
37          IDbCommand Command { getset; }
38 
39         /// <summary>
40         /// 數(shù)據(jù)庫操作適配器
41         /// </summary>
42          IDbDataAdapter Adapter { getset; }
43 
44         /// <summary>
45         /// 打開數(shù)據(jù)庫連接方法
46         /// </summary>
47          void Open();
48 
49         /// <summary>
50         /// 關(guān)閉數(shù)據(jù)庫連接方法
51         /// </summary>
52          void Close();
53 
54         /// <summary>
55         /// 開始事務(wù)控制方法
56         /// </summary>
57          void BeginTransaction();
58 
59         /// <summary>
60         /// 事務(wù)回滾方法
61         /// </summary>
62          void RollBack();
63 
64         /// <summary>
65         /// 事務(wù)提交方法
66         /// </summary>
67          void Commit();
68     }
69 }
70  

NET技術(shù)ORM映射框架總結(jié)--數(shù)據(jù)庫操作庫(精修版),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲伊人精品综合在合线 | 樱桃bt在线www| CHINA篮球体育飞机2022网站 | 美女脱得只剩皮肤 | 九九国产精品成人AV麻豆 | 麻豆国产人妻精品无码AV | 中文字AV字幕在线观看 | 伊人久久大香线蕉综合亚洲 | 毛片免费观看 | 男女做爽爽爽视频免费软件 | 69式国产真人免费视频 | 91在线青春娱乐精品分类 | 免费可以看污动画软件 | 伊人久久艹 | 亚州中文字幕 | 在线观看免费小视频 | 高hbl双性浪荡古代 高h 大尺度纯肉 np快穿 | 麻豆久久婷婷五月国产 | 囯产免费精品一品二区三区视频 | 菠萝菠萝蜜免费播放高清 | 婷婷四房播客五月天 | 东北老妇xxxxhd| 久久99综合国产精品亚洲首页 | 国产成人理在线观看视频 | 最近中文字幕免费高清MV视频 | 久久er99热精品一区二区 | 成年黄网站免费大全毛片 | 国产午夜精品一区二区三区 | 久久久久久人精品免费费看 | 国产精品久久久久激情影院 | 善良的小峓子2在钱免费中文字 | 啦啦啦影院视频在线看高清... | 快播理论片 | 久久香蕉电影 | 香蕉久久夜色精品国产小说 | 中字幕久久久人妻熟女天美传媒 | 日本福利片午夜免费观着 | 成人综合在线视频免费观看完整版 | 国产午夜一级淫片 | 国产精品久久久久a影院 | YELLOW免费观看2019 |