当前位置导航:炫浪网>>网络学院>>网页制作>>ASP.NET教程

数据库连接池Data Connection Framework

数据库连接池Data Connection Framework具备Connection pooling机制,能管理不同的ADO.net Connection。并通过池对象工厂去PoolObjectFactory去创建数据连接池。(可参考:对象工厂创建--- Singleton Object,SingleCall Object,Pool Object )

连接池企业应用组件图如下:


主要文件代码:

  /// <summary>
    /// 连接池上下文
    /// </summary>
    public sealed class ConnectionPoolContext : IDisposable
    {
        /// <summary>
        /// 池对象工厂
        /// </summary>
        private PoolObjectFactory _factory;
        /// <summary>
        /// 默认连接字符
        /// </summary>
        private string _defaultConnectionString;
        /// <summary>
        /// 工厂名称
        /// </summary>
        private string _factoryName;
        /// <summary>
        /// 类型
        /// </summary>
        private Type _factoryType;
        /// <summary>
        /// SQL状态仓库
        /// </summary>
        private SqlStatementRepository _statementRepository;


        /// <summary>
        /// 连接池
        /// </summary>
        private static Dictionary<string, ConnectionPoolContext> _instances = new Dictionary<string, ConnectionPoolContext>();
        /// <summary>
        /// 默认连接字符属性
        /// </summary>
        public string DefaultConnectionString
        {
            get
            {
                return _defaultConnectionString;
            }
            set
            {
                _defaultConnectionString = value;
            }
        }
        /// <summary>
        /// 工厂名
        /// </summary>
        public string FactoryName
        {
            get
            {
                return _factoryName;
            }
            set
            {
                _factoryName = value;
            }
        }
        /// <summary>
        /// SQL状态仓库属性
        /// </summary>
        public SqlStatementRepository StatementRepository
        {
            get
            {
                if (_statementRepository == null)
                    _statementRepository = new SqlStatementRepository();
                return _statementRepository;
            }
        }
        /// <summary>
        /// 对象工厂模式
        /// </summary>
        internal PoolObjectFactory Factory
        {
            get
            {
                return _factory;
            }
            set
            {
                _factory = value;
            }
        }
        /// <summary>
        /// 实例化一个连接池
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static ConnectionPoolContext Instance(string id)
        {

相关内容
赞助商链接