Реферат: Менеджер подключений к базам данных

Как уже указывалось, проще всего эту настройку делать через конфигурационный файл приложения. При этом и у разработчика есть единое место для описания подключений, и конечный пользователь может быстро адаптировать приложение к своим условиям. Нужно отметить, впрочем, что при этом подходе конечный пользователь должен знать стандартный формат строк подключения ADO.NET.

Примерный код, инструктирующий менеджера произвести чтение настроечных данных, даже если он уже был сконфигурирован:

dbmgr.Configure( true ); // forceReload = true

При этом формат секции конфигурационного файла может быть таким:

<Database>

<connection name="alfa"

connectionString="..."

default="true" />

<connection name="beta"

connectionString="..."

type="OleDbConnection" />

</Database>

Здесь декларируется, что приложение использует две базы данных. Первая из них называется alfa, обслуживается объектом типа SqlConnection (ибо ничего другого не указано), и является подключением по умолчанию. Вторая носит логическое имя beta и обслуживается объектом типа OleDbConnection. Безусловно, для обеих баз указаны и корректные строки подключений.

Имея простой и удобный способ описания подключений через конфигурационный файл, мы, тем не менее, не должны забывать, что бывают ситуации, когда все это должно быть сделано программным путем. Например, так:

Configuration config = new Configuration();

// Настраиваемобъект config

// Назначаемконфигурациюменеджеру

DbManager.Configure( config );

В данном случае объект типа Configuration предоставляет нам те же возможности настройки, что и файл конфигурации.

Очень тяжело представить приложение, в котором существовало бы несколько отдельных наборов подключений к базам данных. Я говорю, например, о ситуации, когда в двух разных местах приложения мы используем два разных подключения с именем beta. Какие выводы из этого следуют?

Во-первых, это значит, что все экземпляры менеджера подключений, используемые в приложении, должны быть сконфигурированы одинаково. Соответственно, методы Configure(…) мы смело можем делать статическими.

Во-вторых, напрашивается вывод, что мы вполне можем обойтись одним экземпляром менеджера на все приложение. В некоторых случаях, о которых мы поговорим позже, нам понадобится большее, но все же ограниченное количество экземпляров. Из этого следует, что экземпляр менеджера мы должны получать не при помощи оператора new, а посредством некоего статического метода класса. Пример:

DbManager dbmgr = DbManager.Get();

Подобный подход напоминает о паттерне проектирования Singleton, но, в отличие от классической трактовки, у нас может быть не один экземпляр, а несколько. Впрочем, об этом мы еще поговорим.

Структура класса

Продумав сценарий использования менеджера, мы можем спроектировать структуру класса. Вот она:

public class DbManager : IEnumerable

{

public static DbManager Get() {...}

public IDbConnection this[string name]

{

К-во Просмотров: 301
Бесплатно скачать Реферат: Менеджер подключений к базам данных