Различные утилиты для облегчения работы с БД через JDBC, используемые в компани greetgo!
Предоставляются два компонента:
-
greetgo.db - проксированный доступ к БД
-
greetgo.nf36 - маппинг на 3-ю нормальную форму, с хранением истории в 6-ой нормальной форме
Библиотека greetgo.nf36 содержит зависимость от greetgo.db
greetgo.db
Предоставляет возможность создания прокси-оболочки для автоматического открытия транзакции и её комита. Сделано по образу и подобию Spring-а.
В String-е можно пометить какой-нибудь бин аннотацией @Transactional и все методы в нём будут вызываться в транзации.
Эта библиотека предоставляет такую возможность без привязки в какой-нибудь Dependency Injection.
В Spring-е этот бин должен быть обязательно подключён через интерфейс - желательно этот подход оставлять и здесь. Хотя можно подключить cglib и обойтись без интерфейса.
В Spring-е предоставляется класс JdbcTemplate для доступа к БД. Здесь данный класс назван просто - Jdbc.
(Продолжение описания greetgo.db смотрите здесь...)
greetgo.nf36
Предоставляет возможность синхронной работы с 3-ей и 6-ой нормальными формами в БД за счёт кодогенерации.
3-я нормальная форма используется для работы с оперативными данными.
В 6-ой нормальной форме сохраняется вся история изменений - кто и когда менял тот или иной параметр (автор изменений и время изменений).
6-я нормальная форма обновляется синхронно с 3-ей нормальной формой в транзакционном режиме автоматически.
Вы просто говорите системе: вот в таком субъекте (с таким идентификатором) изменились такие и такие поля на такие и такие значения - система меняет значения в 3-ей нормальной форме и добавляет строки в 6-ю нормальную фому, при этом автоматически записывает время изменений и авторма изменений: автор берётся автоматически из сессии.