连接池就是这样一个容器:它存放了一定数量的与数据库服务器的物理连接。因此,当我们需要连接数据库服务器的时候,只需去池(容器)中取出一条空闲的连接,而不是新建一条连接。
连接池是具有类别区分的。也就是说,同一个时刻同一应用程序域可以有多个不同类型的连接池。那么,连接池是如何标识区分的?细致的讲,是由进程、应用程序域、连接字符串以及windows标识(在使用集成的安全性时)共同组成签名来标识区分的。但对于同一应用程序域来说,一般只由连接字符串来标识区分。当打开一条连接时,如果该条连接的类型签名与现有的连接池类型不匹配,则创建一个新的连接池。反之,则不创建新的连接池。
ADO.NET连接池
当启用Ado.net连接池后,其实只会创建一个连接对象,并且该 连接对象默认并不会立刻关闭,后面的所有其他连接对象都是使用的这个连接对象
禁用连接池后,每次创建一个连接对象,然后关闭连接,此时会真正的创建多个连接对象并每次登陆,退出
当启用Ado.net连接池后,调用con.Close()方法并不会关闭连接,而是把当前连接对象放入到连接池中