Каков наилучший способ реализовать активную запись в Java? - PullRequest
2 голосов
/ 27 ноября 2008

Интересно, достаточно ли простой Map<String,Object> реализации для простых записей?

Я хочу сделать это похоже на Рор. Когда вы автоматически добавляете поле к таблице в базе данных, у вас есть доступ к полю в Dto.

Я не хочу добавлять поле, а затем должен добавить это же поле в объявление DTO. Это не СУХОЙ.

Ответы [ 4 ]

2 голосов
/ 02 августа 2010

Взгляните на это: http://javalite.io/ - это реализация ActiveRecord в Java

1 голос
/ 19 февраля 2011

Если DRY является важным ключевым словом для вас, то вам следует подумать о генерации исходного кода из вашей схемы базы данных (или наоборот). В мире ORM Hibernate поставляется с отличными возможностями генерации исходного кода.

Поскольку вы не ищете ORM-решение, я могу порекомендовать вам мой инструмент абстракции базы данных jOOQ: http://jooq.sourceforge.net

Он сочетает в себе структуры, подобные ActiveRecord, сгенерированные из схемы базы данных, а также DSL для запросов, чтобы фактически выполнять ваши запросы безопасным для типов способом.

1 голос
/ 02 августа 2010

Зависит от того, что вы хотите.

Java является статическим языком, поэтому вы не можете выполнить трюк RoR ActiveRecord, когда он динамически добавляет методы в класс, если вы не хотите сами манипулировать байтовым кодом.

Это означает, что вы должны объявить отображение где-то между java-методом (getter / setter) и таблицей базы данных.

Вы можете сделать генерацию кода Java-классов на основе таблиц, может быть, это то, что вы хотите?

1 голос
/ 27 ноября 2008

Что я думаю, что вы ищете очень легкий инструмент Object Relational Mapping?

Если вы хотите свернуть свои собственные, то есть небольшой пример в рамках этой статьи на developerWorks.

Возможно, вы захотите взглянуть на любое количество других, но Hibernate, JPA и JDO, вероятно, наиболее популярны. Системы типа Prevayler могут быть тем, что вы ищете. Конечно, ничего из этого не может быть тем, что вы ищете. Не могли бы вы быть более конкретным?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...