Files

1.6 KiB
Raw Permalink Blame History

shine-server-bd — это библиотека реалезующая всю работу с БД:

хранит пользователей/сессии/параметры/кэш IP→гео и данные блокчейна (состояние + блоки), предоставляя единый PostgreSQL runtime-контроллер соединений, набор DAO под каждую таблицу (Singleton, методы с Connection для транзакций и без Connection — сами открывают/закрывают), и простые entity-модели как контейнеры данных для маппинга ResultSet↔Java.

Логика структуры классов (в двух словах):

shine.db.DbController / shine.db.PostgresDbController — вход в runtime БД: читает db.url/db.user/db.password, подключается только к PostgreSQL и выдаёт новые Connection. shine.db.DatabaseInitializer — проверяет наличие db_schema_version и при пустой БД автоматически накатывает postgres/schema_v1.sql.

shine.db.entities.* — POJO-модели строк таблиц (без логики, только поля/геттеры/сеттеры + иногда удобные методы вроде getClientKeyByte()). shine.db.dao.* — DAO по таблицам: ActiveSessionsDAO, CurrentUsersDAO, UserParamsDAO, IpGeoCacheDAO, BlockchainStateDAO, BlocksDAO, SignedMessagesDAO; плюс сервисные DAO под recovery/resync.