2016-09-04 3 views
0

Я пытаюсь написать простую библиотечную систему в java. На данный момент реализация базы данных такова: у нас есть абстрактный класс, который предоставляет интерфейс для основного кода. А через наследование мы определяем конкретную логику базы данных. Это делается для того, чтобы мы могли легко переключаться на системы баз данных (mySql, postgresql и т. Д.).Хранение абстрактных данных в абстрактной системе баз данных

Теперь вот мой вопрос, данные, которые мы храним, находятся в классе «Книга». Экземпляры этого класса передаются вместе с базой данных, возможно ли сделать это также абстрактным классом? Поэтому мы можем хранить DVD-диски или телефоны, не меняя многого.

Мы не можем поместить код базы данных в класс «Article», потому что мы не знаем, какую систему баз данных мы будем использовать. Мы можем сделать все переменные и поместить их в одну строку и вернуть эту строку в систему базы данных и сохранить эту строку. Но это не то, что я хотел бы сделать.

Так есть ли какие-либо другие решения, о которых я не думал?

ответ

0

Похоже, вы пытаетесь решить проблему, которая была решена современными библиотеками ORM, в частности добавление JPA к спецификации java. Я бы рекомендовал вам изучить это, чтобы реализовать свою стратегию базы данных.

JPA предназначен для того, чтобы вы могли сохранять объекты и сложные иерархии объектов без необходимости самостоятельно решать эти проблемы, так как вскоре они становятся невероятно сложными и тратят время, когда вы можете сосредоточиться на логике своего приложения.

Hibernate будет хорошей отправной точкой:

http://hibernate.org/orm/documentation/5.2/

+0

Спасибо за ответ и да, это определенно решает мою проблему. Дело в том, что я студент, моя цель состояла в том, чтобы решить проблему, а не делать приложение. Использование библиотеки - это своего рода обман, так как я хочу улучшить свои навыки программирования, но я буду более подробно разбираться в том, как эти библиотеки создаются, и я уверен, что я узнаю кучу из этого! –