Обновление Rust-библиотеки Ormlib до версии 1.0.1. Что изменилось и почему это важно?

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Я рад сообщить, что вышла новая версия моей Rust-библиотеки для объектно-реляционного отображения - Ormlib 1.0.1. В этой версии было проделано много работы по улучшению архитектуры библиотеки.

В предыдущей версии 0.3.3, Ormlib работал только с базой данных SQLite. Это ограничивало сферы применения библиотеки. В версии 1.0.1 была проделана большая работа по рефакторингу кода, чтобы абстрагировать ее от конкретной реализации СУБД.

После рефакторинга я использовал механизм "features", который позволяет компилировать Ormlib либо с поддержкой SQLite, либо с поддержкой MySQL.

[dependencies]
ormlib = {version = "1.0.1", features = ["sqlite"]} # or "mysql"
ormlib_derive = "1.0.1"

Для реализации этой возможности был создан трейт ORMTrait, который определяет общий интерфейс для работы с ORM.

Этот трейт реализуется отдельно для SQLite и MySQL. Таким образом я получил гибкую архитектуру, которая позволит в будущем добавлять поддержку и других СУБД.

Трейт ORMTrait предоставляет следующие базовые методы для работы с базой данных:

  • add() - добавляет данные в базу данных

  • close() - закрывает соединение с базой данных

  • find_one() - ищет одну запись по ID

  • find_many() - ищет несколько записей по условию

  • find_all() - ищет все записи

  • modify() - изменяет запись

  • remove() - удаляет запись

  • query() - выполняет произвольный запрос

  • query_update() - выполняет произвольный запрос с обновлением данных

  • protect() - экранирует строку от SQL-инъекций

  • init() - выполняет инициализацию базы данных

Чтобы перейти на использование новой версии Ormlib, необходимо код:

use ormlib::{ORM, ORMError};

заменить на:

use ormlib::sqlite::ORM; // для перехода на mysql заменить на use ormlib::mysql::ORM;
use ormlib::{ORMError, ORMTrait};

Код библиотеки доступен на GitHub по ссылке https://github.com/evgenyigumnov/orm-lib.

Источник: https://habr.com/ru/articles/766064/


Интересные статьи

Интересные статьи

В любом многопользовательском проекте рано или поздно возникает потребность в оперативном уведомлении клиентов об изменении объектов в системе. В данной статье я не буду рассматривать что-то сложное, ...
Сейчас в США всё постепенно возвращается в норму. Проведите пару дней в Нью-Йорке, или просто посмотрите на прямую трансляцию с улиц, и вы это почувствуете. Манхэттен и Бруклин кипят активностью....
В облаке многие думают над стартом приложения, но не все задумываются о том, как оно завершается. В свое время мы наловили довольно много ошибок, связанных именно с остановкой подов. Например, увидели...
На Хабре много познавательных статей про то, «как я собеседовался в X» (раз, два, три, или вот четыре). Часто они написаны с одной стороны баррикад, т.е. со стороны соискателя. Читая очередную, я поня...
На днях представлен релиз языка программирования Go 1.15. Как известно, изначально это был проект компании Google, который вышел за пределы корпорации и стал развиваться при подд...