zoukankan      html  css  js  c++  java
  • ADO.NET 快速入门(十一):连接池

    这个示例演示了如何构建一个到数据源的连接池。你可以通过连接池部署高性能的应用程序。本例中使用连接串创建连接池,并且由 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:       50
    
    connString = "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 方法是非常必要的。
     
    原文连接:
     
  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 贪吃的大嘴
    Java实现 蓝桥杯VIP 算法提高 贪吃的大嘴
    Java实现 蓝桥杯VIP 算法提高 贪吃的大嘴
    Java实现 蓝桥杯VIP 算法提高 贪吃的大嘴
    Java实现 蓝桥杯VIP 算法提高 士兵排队问题
    Java实现 蓝桥杯VIP 算法提高 士兵排队问题
    Java实现 蓝桥杯VIP 算法提高 士兵排队问题
    Java实现 蓝桥杯VIP 算法提高 士兵排队问题
    Java实现 蓝桥杯VIP 算法提高 数字黑洞
    Minifilter微过滤框架:框架介绍以及驱动层和应用层的通讯
  • 原文地址:https://www.cnblogs.com/JavCof/p/3443016.html
Copyright © 2011-2022 走看看