Каков самый простой способ использования сохранения базы данных в Java? Я знаю, многие рамки существуют в Интернете, но было бы интересно узнать, как создать слой персистентности самостоятельно и его шаблоны проектирования. Когда начать? Книги, веб-сайты, инструкции, примеры кода и т. Д.Сохранение Java в базе данных
ответ
Я бы начал с Java Java Persistence API (JPA). Вот good starter article.
Простой способ - это использовать только jdbc. Java имеет хороший учебник here.
Что касается уровней абстракции. Hibernate, по моему опыту, довольно стандартный и заслуживает изучения. Программирование собственного может быть забавным упражнением, но я не могу придумать, почему не использовать спящий режим.
это может быть интересно узнать, как развивать настойчивость и слой самого
NOOOO! Не будь глупым.
Использовать JDO или JPA. Первый - универсальный API-интерфейс для сохранения объектов, другой - только для RDBMS-es.
Они имеют различные реализации, например. для JPA существует EclipseLink (ранее Oracle TopLink), который также является эталонной реализацией JPA 2 и Hibernate, которая также очень популярна.
Вы действительно, действительно не хотите создавать свои собственные. Если вы хотите работать в этой области, тогда вместо этого вносите вклад в один из существующих проектов.
В дополнение к предыдущим ответам - проверьте шаблон DAO (Data Access Object) - он отражает то, как должен быть организован код для доступа к данным.
Если вы ищете обучения практику затем попытаться получить копию Craig Larman-х Applying UML and Patterns.
alt text http://graysmatter.codivation.com/content/binary/applyingumlandpatterns.jpg
Там Larman представляет главу о легком персистенции базы данных дизайна картографа. В отличие от Hibernate, основанного на ненавязчивой модели устойчивости, он представляет собой навязчивую структуру, в которой объекты домена должны быть расширены из PersistentObject. Мы также должны писать классы сопоставления для каждого устойчивого класса домена. Это своего рода шаблон ActiveRecord без какой-либо концепции когенерации.
Этот book (Шаблоны архитектуры приложений предприятия) кажется очень хорошим с первого взгляда.Я изучаю его, и шаблоны проектирования для разработки механизма персистентности очень полные. Он рассказывает, почему, когда и как их использовать.
Начните с изучения функций и исходного кода уже существующих. Вот пара (просто чтобы назвать несколько в алфавитном порядке)
- DbUtils: Очень простая обертка для JDBC. Возможно, начните искать здесь идеи!
- EBean: Подобно самой JPA
- Hibernate: де-факто стандарт, который в значительной степени под влиянием спецификации JPA Java-
- iciql: дружественную развилки JaQu
- JaQu: собственный домен конкретного языка H2 для запросов к базам данных
- JDBI: Предоставляет доступ к реляционным базам данных в идиоматической Java
- JDO: Объекты данных Java Apache
- jOOQ: Моделирование SQL как конкретного домена непосредственно в Java
- MyBatis: «самая популярная в мире структура отображения SQL». [Так в оригинале] (ранее Ibatis)
- QueryDSL: SQL-подобный свободно API со многими различными движками (не только SQL)
- Quaere: Подобно QueryDSL
И скоро, вы можете редактировать этот ответ и добавьте свои собственные рамки!
Я обнаружил, что использование сопоставления SQL, такого как iBatis поверх JDBC, намного проще, чем использование raw JDBC. Это должно быть справедливо для ORM, таких как Hibernate и JPA. Во всех этих подходах структура заботится о многих деталях для вас. К ним относятся такие оптимизации, как объединение пулов и предотвращение атак SQL-инъекций. –
Для чего это стоит, мне очень нравится jDBI (http://jdbi.org/); он обрабатывает все неприятные части JDBC, позволяет привязывать данные, если вы хотите, но старается держаться подальше от пути. – StaxMan