博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ADO.NET 快速入门(十一):连接池
阅读量:6403 次
发布时间:2019-06-23

本文共 2749 字,大约阅读时间需要 9 分钟。

这个示例演示了如何构建一个到数据源的连接池。你可以通过连接池部署高性能的应用程序。本例中使用连接串创建连接池,并且由 SqlConnection 自动管理。
 
string connString;            connString = "server=(local);Integrated Security=SSPI;database=northwind;"                         + "pooling=true;";            SqlConnection myConnection = new SqlConnection(connString);            myConnection.Open();            myConnection.Close();

 

本例中,在构建 SqlConnection 对象时, 在连接串中指定了连接池特性,就像下例中一样。请记住:连接池是隐式的,除非明确禁用,都会自动创建。因此,“True”是 pooling 关键字的默认设置(pooling=true)。
 
String connString;// Specification in the connection string:// Please note: Pooling is implicit, you automatically get it unless you disable it. //              Therefore, "true" is the default for the pooling keyword (pooling=true).   // Connection Reset:    False// Connection Lifetime: 5// Enlist:              true// Min Pool Size:       1// Max Pool Size:       50connString = "server=(local)\\SQLExpress;Integrated Security=SSPI;database=northwind;" +             "connection reset=false;" +             "min pool size=1;" +             "max pool size=50";SqlConnection myConnection1 = new SqlConnection(connString);SqlConnection myConnection2 = new SqlConnection(connString);SqlConnection myConnection3 = new SqlConnection(connString);

 

现在用代码实现在连接池上使用多个 Connections 对象。首先,从连接池打开2个 Connections 对象并且回收它们。然后,从连接池打开3个 Connections 对象并且回收它们。
 
public class ConnectionPoolingExample    {        public void Run()        {            string connString;            connString = "server=(local);Integrated Security=SSPI;database=northwind;"                         + "connection reset=false;"                         + "min pool size=1;"                         + "max pool size=50";            SqlConnection myConnection1 = new SqlConnection(connString);            SqlConnection myConnection2 = new SqlConnection(connString);            SqlConnection myConnection3 = new SqlConnection(connString);            // 打开2个连接。一个是从连接池打开(参考 min pool size),另一个从数据源创建。            Console.WriteLine("打开2个连接。");            myConnection1.Open();            myConnection2.Open();            // 目前,连接池里有2个和连接串匹配的连接            Console.WriteLine("返回2个连接到连接池。");            myConnection1.Close();            myConnection2.Close();            // 从连接池取出1个连接            Console.WriteLine("从连接池打开1个连接。");            myConnection1.Open();            Console.WriteLine("从连接池取出第2个连接。");            myConnection2.Open();            Console.WriteLine("第3个连接从数据源创建。");            myConnection3.Open();            // 回收3个连接到连接池            Console.WriteLine("回收3个连接到连接池。");            myConnection1.Close();            myConnection2.Close();            myConnection3.Close();        }    }

 

连接池模型类似于不通过连接池的连接。但是,当完成一次池连接释放连接回连接池时,调用 Close 方法是非常必要的。
 
原文连接:

 

 

转载于:https://www.cnblogs.com/JavCof/p/3443016.html

你可能感兴趣的文章
断断续续的HTML5&CSS3学习记录
查看>>
lighttpd中实现每天一个访问日志文件
查看>>
node.js发送邮件email
查看>>
查看nginx配置文件路径的方法
查看>>
接口性能调优方案探索
查看>>
kali安装包或更新时提示“E: Sub-process /usr/bin/dpkg return”
查看>>
网站管理后台模板 Charisma
查看>>
EL:empty的用法
查看>>
Saltstack配置之 nodegroups
查看>>
Servlet和JSP优化经验总结
查看>>
squid使用rotate轮询(分割)日志
查看>>
VS2015安装EF Power Tools
查看>>
MySQL主从复制(笔记)
查看>>
keepalived高可用集群的简单配置
查看>>
Android Java Framework显示Toast(无Activity和Service)
查看>>
通过 SignalR 类库,实现 ASP.NET MVC 的实时通信
查看>>
NavigationController修改状态条颜色
查看>>
16大跨平台游戏引擎
查看>>
NPS如何配置基于mac地址的8021x认证
查看>>
XenServer架构之XAPI的调用流程
查看>>