Я рад сообщить, что вышла новая версия моей 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 по ссылке.
Ссылка на первую статью про Ormlib.
ссылка на оригинал статьи https://habr.com/ru/articles/766064/
Добавить комментарий