Разработка базы данных - PullRequest
       13

Разработка базы данных

2 голосов
/ 05 февраля 2009

Я разрабатываю (другую) веб-инфраструктуру Java для личного использования, и в дополнение к этому я также хочу разработать некоторую инфраструктуру персистентности.

Я уже разработал и разработал механизм, чтобы получить доступ к таблице, вы должны только расширить класс и создать поля с тем же типом и именем, что и в таблице. Пример:

private int id;
private String nome; 

Так что вам нужно только сейчас построить запрос и выполнить. Движок выставит значения в нужные поля.

Недавно у меня был довольно хороший опыт работы с Django, для обновления, создания и фильтрации таблицы, которую вам просто нужно вызвать .save (), .create (field1 = field, field2 = 213) и,. фильтр (filterfield = значение).

Я хочу построить это для, но у меня возникли некоторые проблемы, потому что расширяющемуся классу действительно придется писать больше, факт, который я не хочу форсировать. У меня была идея, чтобы расширяющийся класс написал enum, реализующий интерфейс. Таким образом, суперкласс получает эти поля вместе с закрытым HashMap (ключ - enum) и сохраняет значения, поэтому клиент просто вызывает:

String nome = Usuarios.get(Usuarios.fields.name); 

Чтобы получить значение.

Usuarios.update(new Pair(Usuarios.fields.name, "José Leal"), new Pair(Usuarios.fields.sobrenome, "Domingues")); 

Для обновления и т. Д.

У кого-нибудь есть идея получше? Я также использую скоростной каркас, поэтому я хотел бы, чтобы мое поле было доступно его получателю.

пс: я знаю существование спящего и т. Д.

1 Ответ

4 голосов
/ 05 февраля 2009

Я бы посоветовал вам не заставлять пользователей расширять один из ваших собственных классов для своих объектов модели. Это блокирует их от расширения их собственных классов и делает их более уязвимыми для изменений API, которые вы можете сделать позже.

Поскольку javax.persistence уже определены аннотации, которые можно использовать для сопоставления свойств с базой данных, я бы предложил вместо этого позволить пользователям создавать POJO для их объектов модели с аннотированными свойствами. Таким образом, наряду с другими упомянутыми преимуществами, вы следуете уже установленному стандарту и тем самым снижаете барьер для входа для ваших пользователей.

...