日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

“Zhuang.Data”轻型数据库访问框架(二)框架的入口DbAccessor对象

發布時間:2025/4/16 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 “Zhuang.Data”轻型数据库访问框架(二)框架的入口DbAccessor对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄:

“Zhuang.Data”輕型數據庫訪問框架(一)開篇介紹

“Zhuang.Data”輕型數據庫訪問框架(二)框架的入口DbAccessor對象

?

?

先來看一段代碼

DbAccessor dba = DbAccessor.Create();var dt = dba.QueryDataTable("select * from sys_product where productid=#Id#",new {Id=1});Console.WriteLine(DataTableUtil.ToString(dt));

實際執行的sql

exec sp_executesql N'select * from sys_product where productid=@Id',N'@Id int',@Id=1

?DbAccessor抽象類

DbAccessor是一個抽象類(不同數據庫會對應具體的實現類,如:SqlServerAccessor、OracleAccessor和MySqlAccessor),該類封裝了許多用來執行sql的方法,如:Execute、ExecuteReader、ExecuteScalar、QueryDataSet、QueryDataTable和QueryEntities等方法。也就是說只要有了該抽象類的一個對象就可以使用以上的方法,那么如何能得到一個DbAccessor對象呢?DbAccessorFactory這個工廠類就是專門用來創建DbAccessor對象的,其實上面代碼上的DbAccessor.Create()方法也是去調用DbAccessorFactory.Create()去得一個DbAccessor對象的。

DbAccessorFactory工廠類

public static DbAccessor NewDbAccessor(string connectionString, string providerName){DbAccessor dba = null;if (string.IsNullOrEmpty(providerName)|| providerName == "System.Data.SqlClient"|| providerName.ToLower() == DbProviderName.SqlServer.ToString().ToLower()){dba = new SqlServerAccessor(connectionString);EvnValService.SetDbAccessorDbProviderName(dba, DbProviderName.SqlServer);}else if (providerName.ToLower() == DbProviderName.Oracle.ToString().ToLower()){dba = new OracleAccessor(connectionString);EvnValService.SetDbAccessorDbProviderName(dba, DbProviderName.Oracle);}else if (providerName.ToLower() == DbProviderName.MySql.ToString().ToLower()){dba = new MySqlAccessor(connectionString);EvnValService.SetDbAccessorDbProviderName(dba, DbProviderName.MySql);}else{Type tProviderName = Type.GetType(providerName);if (tProviderName == null){throw new Exception(string.Format("ConnectionString({0})的ProviderName({1})找不到該類型!", connectionString, providerName));}else if (!(tProviderName.IsSubclassOf(typeof(DbAccessor)))){throw new Exception(string.Format("ConnectionString({0})的ProviderName({1})該類型不是DbAccessor的實現類!", connectionString, providerName));}object oProviderName = Activator.CreateInstance(tProviderName, connectionString);dba = oProviderName as DbAccessor;}return dba;}

以上代碼DbAccessorFactory類中一個方法,方法所做的就是,根據App.config或Web.config中配置中connectionString配置去創建具體的DbAccessor實現類

<connectionStrings><add name="DefaultDb" connectionString="Data Source=127.0.0.1;Initial Catalog=zhuangdb;Persist Security Info=True;User ID=sa; PassWord=zwb"providerName="sqlserver"/><add name="MySqlDb" connectionString="Data Source=192.168.121.130;Initial Catalog=zhuangdb;Persist Security Info=True;User ID=root; PassWord=zwb"providerName="mysql"/><add name="OracleDb" connectionString="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.126.129)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=xe)));User Id=zhuangdb;Password=zwb;"providerName="oracle"/></connectionStrings>

connectionString配置中有一個providerName的屬性,DbAccessorFactory會根據這里配置是什么數據庫provider去創建具體對應的數據庫DbAccessor實現類,如:當

providerName="sqlserver"時工廠創建出來的是一個SqlServerAccessor類的實例。

DbAccessorFactory類常用方法介紹

1、GetDbAccessor()

得到一個DbAccessor單例對象;

2、CreateDbAccessor()

創建一個新的DbAccessor對象,當前需要使用事務時候需要創建新的對象而不能使用單例;

3、CreateDbAccessor(string name)

創建一個新的DbAccessor對象,參數“name”對應配置文件中connectionStrings配置中的項置項名稱(如果沒有指定name的值的話將會自動取一個默認值“DefaultDb”);

?

未完,待續……

?

轉載于:https://www.cnblogs.com/zwbblog/p/4978955.html

總結

以上是生活随笔為你收集整理的“Zhuang.Data”轻型数据库访问框架(二)框架的入口DbAccessor对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 超碰女优| 国产微拍一区 | 午夜一区二区三区免费观看 | 成人精品一区日本无码网 | 久久二| 无码人妻丰满熟妇啪啪网站 | 亚洲成年人网站在线观看 | 亚洲天堂一区二区三区四区 | 99激情视频 | 巨乳女教师的诱惑 | 99re热在线视频 | 国产午夜影院 | 日本免费小视频 | 天堂综合网久久 | 爱爱一区 | 日韩精品美女 | 亚洲av日韩av在线观看 | 色在线视频| 不卡的中文字幕 | 国产亚洲精品久久久久丝瓜 | 日韩99 | 亚洲色综合 | 伊人网色 | 亚洲精品理论片 | 日韩精品视频播放 | 久久成年 | 天天视频入口 | 精品久久久国产 | 日本一区二区三区视频在线观看 | 亚洲片国产一区一级在线观看 | 米奇7777狠狠狠狠视频 | ts人妖另类精品视频系列 | 久久精品第一页 | 久久综合鬼色 | 久久成人亚洲 | 日韩av在线播放不卡 | 中文久久乱码一区二区 | 男人爆操女人 | 亚洲精品激情视频 | 日韩中文字幕在线一区 | 成人3d动漫一区二区三区91 | 久草福利资源站 | 黄色在线播放视频 | 俄罗斯乱妇 | 午夜视频在线免费 | 日韩精品在线观看一区二区 | 国产精品久久AV无码 | 国产精品久久久久久久久 | 亚洲熟妇av一区二区三区漫画 | 亚洲精品成 | 一区二区三区在线观看 | 伊甸园精品区 | 国产伦精品一区二区三区四区 | 亚洲色图五月天 | 小优视频污 | av片在线观看 | 日韩一级片中文字幕 | 国产伦精品一区二区三 | 国产在线观看99 | 亚洲美女性生活视频 | 日韩中文字幕在线 | av在线高清观看 | 操网 | 欧美精品一区二区蜜臀亚洲 | 黄色aa级片 | 国产又猛又黄又爽 | 一区二区三区在线免费观看视频 | 久色网| 欧美日韩久久婷婷 | 1024国产精品| 大胸奶汁乳流奶水出来h | 色婷婷av一区二区三区之e本道 | 国产永久在线 | 国产精品区在线 | 国产亚洲成av人片在线观看桃 | 夜夜草av | 瑟瑟av | 欧美日韩欧美日韩在线观看视频 | 国产一区二区三区在线视频 | 亚洲精品乱码久久久久久日本蜜臀 | 日本在线不卡一区 | 久久久久久国产精品一区 | 超碰超碰97| 国产一二三级 | 在线播放的av | 国产一区二区三区免费视频 | 精品久久一区二区三区 | 国产精品毛片 | 不用播放器看av | 欧美变态口味重另类 | 无码视频在线观看 | 日韩污视频在线观看 | 国产精品久久免费 | 高清视频在线免费观看 | 精品一区91 | 亚洲国产日韩一区二区 | 色优久久 | 男生插女生视频在线观看 | 性涩av|