Следует ли использовать ORM / RDBMS с настольными приложениями Java? - PullRequest
3 голосов
/ 23 июня 2011

Я долго ломал голову над этим. Я живу в мире Django некоторое время, и мне трудно вернуться на Java.

Я создаю настольное Swing-приложение, которое выполняет некоторые простые задачи CRUD с простыми отношениями «один ко многим» в моделях. Я смотрю на решения ORM, такие как DataNucleus, но я откладываю на 20 Мб зависимостей, зависимость от XML и незнакомство со всеми трехбуквенными акронимами.

Все, что я хочу сделать, это позволить пользователю заполнить некоторые поля, отобразить их в таблице, позволить им выбирать / редактировать / удалять записи в таблице и сохранять / открывать эти данные в файл.

Являются ли решения ORM излишними для этого типа сценария? Должен ли я просто поместить их все в ArrayList и сам написать все элементы CRUD?

Ответы [ 5 ]

4 голосов
/ 23 июня 2011

Все эти фреймворки созданы для явной цели устранения котельной плиты и замены ее стабильным кодом, который был проверен до смерти.Независимо от того, говорите ли вы об ORM для СУБД или структурах отображения / связывания для XML, они «почти» никогда не будут лишними.Они служат для снижения профиля риска вашего приложения.Основная аббревиатура - СУХОЙ.

1 голос
/ 23 июня 2011

DataNucleus 20Mb размер зависимостей? Я бы посоветовал вам вернуться к этому и сосредоточиться на своих требованиях. Если вы подсчитаете всю возможную поддержку хранилища данных и все возможные зависимости всей возможной поддержки хранилища данных, вы можете получить до 20 МБ (но собираетесь ли вы сохранить до 9 различных типов хранилищ данных?), Но тогда, если вы хотите чтобы продолжать говорить Excel с помощью JDO у вас меньше 3 Мб. И размер этих банок практически не влияет на скорость вашего приложения или вообще не влияет (кроме времени на загрузку, и интернет-соединения немного быстрее, чем раньше).

Зависимость от XML? Нету. Вы можете использовать аннотации по своему усмотрению (и без XML).

1 голос
/ 23 июня 2011

Если вы используете ORM (например, JPA / Hibernate или другие), некоторые IDE (например, Netbeans) могут генерировать все классы, которые осуществляют связь с базой данных.Все, что вам нужно сделать, это создать схему базы данных (говоря в терминологии оракула).Поэтому после этого вам остается только написать бизнес-логику.Если вы не хотите использовать javaEE в своем проекте, вы можете использовать такой инструмент, как FireStormDAO .Он может генерировать классы DAO из сценария DDL вашей базы данных.

1 голос
/ 23 июня 2011

Я бы не стал использовать RDBMS для небольшого настольного решения, как вы описали.Существует множество красивых инструментов для сохранения данных: пользовательский доступ с помощью текстовых файлов, сериализованные объекты Java, сериализованные переносимые данные с protobuf. * ​​1001 *

Если вы все еще хотите использовать SQL-подобный доступ, вы можете использовать SQL liteвстроенная версия MYSQL.

Лично я сделал приложение для управления небольшими заказами, хранящее набор данных в файле на диске.Вы также можете рассмотреть формат JSON, который должен быть вам знаком на основе вашего фона django.

1 голос
/ 23 июня 2011

Когда вы говорите «сохранить / открыть эти данные в файл», что это за файл?Если XML, вы можете взглянуть на EclipseLink MOXy, который является Object-XML-Mapper (реализация JAXB).

...