• 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 方法是非常必要的。
     
    原文连接:
     
  • 相关阅读:
    javascript 操作DOM元素样式
    javascript 对象
    javascript 事件对象
    javascript 常用尺寸属性
    团队编程项目作业3-模块开发过程
    buuctf-misc 基础加密
    buuctf-misc 你竟然赶我走
    buuctf-misc 大白
    buuctf-misc N种方法解决
    buuctf-misc二维码
  • 原文地址:https://www.cnblogs.com/JavCof/p/3443016.html
Copyright © 2020-2023  润新知