Обновление DbFacade. Встречаем библиотеку для MySQL
Сегодня хочу представить вам обновление моих библиотек для удобной работы с базами данных SQLite, MSSQL и долгожданный MySQL. Если первые две вы уже знаете, то о последней сегодня еще поговорим. А сейчас я расскажу об изменениях первых двух.
Самое важное — я переименовал название класса каждой библиотек. Теперь вы сможете добавлять в один проект обе библиотеки, и они не будут конфликтовать. Также я изменил конструкторы и убрал некоторые переменные. Когда я только начинал писать код библиотек, я представлял себе, что они будут совместимы и их легко можно будет менять в независимости от использованной базы данных. Однако это оказалось слишком сложно и неоднозначно. Во первых параметры подключения слишком разнятся, но это еще не самое плохое. Проблема возникла, когда начинаются использоваться операторы или функции, которых используются в запросах к одной базе данных, но не поддерживаются другой. В итоге я решил упростить задачу и писать библиотеки только под конкретную базу данных.
Вторая важность заключается в том, что теперь вы можете без проблем наследоваться от DbFacade и ничего не менять в исходном коде самой библиотеки. В этом случае все ваши методы будут находиться в другом файле и дополнять DbFacade. А после выхода новой версии, вам достаточно будет заменить DbFacade и все.
public class MyDatabase : DbFacadeMySQL
{
//Конструктор
public Database(string server, uint port, string username, string password, string database)
: base
(server, port, username, password, database)
{
}
//Здесь все остальные ваши методы...
}
Это один из вариантов использования библиотеки.
Для базы данных MySQL я разработал новую библиотеку. Основные методы остались те же, однако есть и новинки:
- CheckConnection — проверяет подключение к текущей базе данных;
- ChangeDatabase(название базы данных) — позволяет переключиться на другую базу данных;
- DataBase — возвращает имя текущей базы данных;
- Server — возвращает имя текущего сервера;
- Version — возвращает текущую версию сервера;
- GetDatabases() — возвращает список доступных баз данных на текущем сервере;
- GetTables(имя базы данных) — возвращает список таблиц заданной базы данных;
Для полной совместимости, для версии MySQL передаваемые параметры претерпели некоторые изменения: используется MySqlDbType вместо DbType. Если для SQLite и MSSQL можно писать так:
ParametersCollection ps = new ParametersCollection();
ps.Add("startDate", DateTime.Now, DbType.DateTime);
то для MySQL необходимо писать так:
ParametersCollection ps = new ParametersCollection();
ps.Add("startDate", DateTime.Now, MySqlDbType.DateTime);
Для DbFacadeMySQL потребуется скачать и подключить вот эту библиотеку.
Вот, в принципе и все отличия. Сейчас я выложил бета-версию всех библиотек. Старая 0.5.13 будет еще доступна. Скачать можно, как обычно, в разделе проектов.
Популярность: 3%
Если у вас возникли вопросы, вы можете оставить их в комментариях

