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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring.net +dapper 打造简易的DataAccess 工具类.

發布時間:2023/10/11 编程问答 76 如意码农
生活随笔 收集整理的這篇文章主要介紹了 spring.net +dapper 打造简易的DataAccess 工具类. 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
 public class DBUtil
{
/// <summary>
/// 數據庫連接字符串
/// </summary>
private static string DataBase_Connection = System.Configuration.ConfigurationManager.ConnectionStrings["DNT"].ToString(); /// <summary>
/// 腳本文件存放路徑
/// </summary>
private static string Data_File_Path = System.Configuration.ConfigurationManager.AppSettings["Data_File_Path"].ToString(); /// <summary>
/// 全局配置文件列表
/// </summary>
public static Dictionary<string, DataConfig> DataConfigList; /// <summary>
/// 加載配置文件
/// </summary>
public static void InitConfig()
{
var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,Data_File_Path); DirectoryInfo TheFolder = new DirectoryInfo(filePath);
foreach (FileInfo NextFile in TheFolder.GetFiles().Where(f=>f.Extension == ".config"))
{
Spring.Context.Support.XmlApplicationContext context = new Spring.Context.Support.XmlApplicationContext(NextFile.FullName);
string[] fileNames = context.ObjectFactory.GetObjectDefinitionNames(); foreach (var fileName in fileNames)
{
var mObj = context.GetObject(fileName); if (DataConfigList == null)
{
DataConfigList = new Dictionary<string, DataConfig>();
} string keyName = NextFile.Name.Split('.')[].ToString() + "." + fileName; if (!DataConfigList.ContainsKey(keyName))
{
DataConfigList.Add(keyName, mObj as DataConfig);
}
else
{
throw new ApplicationException("The existence of multiple identical configuration node,plseae check!");
}
}
} } /// <summary>
/// 獲取指定名稱SQL
/// </summary>
/// <param name="commandName"></param>
/// <returns></returns>
public static string GetSql(string commandName)
{
InitConfig(); if (!DataConfigList.ContainsKey(commandName))
{
throw new ApplicationException("Data file can't be found!");
}
else
{
return DataConfigList[commandName].commandText;
} } /// <summary>
/// 獲取數據庫連接
/// </summary>
/// <returns></returns>
public static SqlConnection GetConnection()
{
SqlConnection connection = new SqlConnection(DataBase_Connection);
connection.Open(); return connection;
} /// <summary>
/// 獲取Command
/// </summary>
/// <param name="commandName"></param>
/// <returns></returns>
public static IDbCommand CreateCommand(string commandName)
{
var connection = GetConnection(); using (IDbCommand command = connection.CreateCommand())
{
command.CommandText = GetSql(commandName);
return command;
}
} /// <summary>
/// 執行查詢動作
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="command"></param>
/// <param name="pars"></param>
/// <returns></returns>
public static List<T> Query<T>(string commandName, dynamic pars)
{
using (IDbCommand command = DBUtil.CreateCommand(commandName))
{
return SqlMapper.Query<T>(command.Connection, command.CommandText, pars);
}
}
}

SQL配置文件管理

  • 支持多文件 (Order.config,  Item.config....), DBUtil 會在調用時加配置文件加入內存中緩存,待下次時候,直接讀取內存數據.
 <?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.net
http://www.springframework.net/xsd/spring-objects.xsd">
<object id="GetOrderList" type="SpringDemo.DataConfig,SpringDemo">
<property name="commandText">
<value>
<![CDATA[
SELECT TOP(@Size) * FROM dbo.Order
]]>
</value>
</property>
</object> <object id="GetOrderDetail" type="SpringDemo.DataConfig,SpringDemo">
<property name="commandText">
<value>
<![CDATA[
SELECT TOP(@Size) * FROM dbo.OrderDetail WHERE OrderID = @OrderID
]]>
</value>
</property>
</object>
</objects>

Demo代碼

class Program
{
static void Main(string[] args)
{
List<Order> OrderList = GetOrderList(); OrderList.ForEach(f =>
{
Console.WriteLine(f.OrderNumber);
}); Console.ReadLine();
} public static List<Order> GetOrderLIST(int size)
{
return DBUtil.Query<Order>("Order.GetOrderList", new { Size = size }).ToList();
}
       public static List<OrderDetail> GetOrderDetail(int size,int orderId)
{
return DBUtil.Query<OrderDetail>("Order.GetOrderDetail", new { Size = size,OrderID = orderId }).ToList();
}
}

總結

以上是生活随笔為你收集整理的spring.net +dapper 打造简易的DataAccess 工具类.的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美aaaaaaaaaa| 曰本不卡视频 | 久久久久亚洲精品系列色欲 | 成人免费黄色 | 夜夜春影院 | 日日干av| 黄色视屏在线免费观看 | 亚洲免费一级片 | 国产裸体无遮挡 | 亚洲自拍激情 | 国产一区二区三区四区视频 | 欧美呦呦呦 | 日韩在线免费 | 午夜av影视 | 亚洲天堂自拍偷拍 | 亚洲国产精品久久久久爰色欲 | 精品国产一区二区三区久久久蜜臀 | 国产精品一区二区三区高潮 | 精品成人在线视频 | 丁香五香天堂 | 好看的中文字幕av | 色免费视频 | 国产一区亚洲二区三区 | 狠狠艹av | 青娱乐国产 | 免费大片黄在线观看 | n0659极腔濑亚美莉在线播放播放 | 草1024榴社区成人 | 中文字幕乱码无码人妻系列蜜桃 | 成人va视频 | 日本后进式猛烈xx00动态图 | 欧美一级性视频 | 国模无码视频一区二区三区 | 国产手机在线观看 | 亚洲一本在线观看 | 亚洲欧美一区二区三区孕妇 | 香蕉久久国产av一区二区 | 国产在线激情 | 亚洲看片网 | 欧美性猛交 | 日韩精品――中文字幕 | 亚洲欧美一| 亚洲最新在线视频 | 午夜视频在线瓜伦 | 日韩第三页 | www天堂网| 日韩大片一区二区 | 成年人国产 | 国产欧美日韩三区 | 精品久久久影院 | 美女脱裤子让男人捅 | 国产又粗又猛又黄又爽视频 | 精品一区av | 反差在线观看免费版全集完整版 | 日日射天天干 | 久久久999精品视频 国产在线xx | 亚洲手机看片 | 四虎在线视频免费观看 | 国产夫妻久久 | 夜夜草影院 | 岛国一区 | 免费久久一级欧美特大黄 | 免费看a毛片 | 国产成人无码a区在线观看视频 | 免费观看一区二区三区视频 | 公车激情云雨小说 | 欧美美女黄色 | 天天操夜夜操狠狠操 | 91av一区| 岛国精品在线观看 | 欧美日韩亚洲国产另类 | 久久免费在线视频 | 亚洲成人免费视频 | 中文字字幕在线观看 | 欧美日韩国产综合在线 | 亚洲人成影视 | 毛片视频网站在线观看 | 成年黄色网 | 久久字幕| 国产天堂av在线 | 最新中文字幕在线播放 | 久在线观看视频 | 日本免费在线播放 | 欧美黄色大片在线观看 | 亚欧在线| 天海翼视频在线观看 | 久久性生活片 | 少妇中文字幕 | 口爆吞精一区二区三区 | 国产成人精品无码片区在线 | 少妇色欲网 | 自拍偷拍欧美日韩 | 超碰人人人 | 青青久久av北条麻妃黑人 | 动漫美女隐私无遮挡 | 午夜xx | 老太婆av| 在线免费日韩 | 青青草日本 |