powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите советом: десктопное приложение на Java для работы с БД
25 сообщений из 530, страница 1 из 22
Помогите советом: десктопное приложение на Java для работы с БД
    #39229500
RuslanGab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Знаю что тема по большому счету замусолена, но что-то везде все не свежо что я нарыл...
Мне поставили совершенно несложную задачу: сделать десктопное приложение для локальной работы с БД, и я понял что не уверен как это сделать лучше, ибо, опыта не много (а тот что есть - работа через JBoss или GlassFish, а тут вдруг бац и вроде надо "тупо напрямую"
БД - SQL Server. Это неизменяемо. Работает локально.
GUI на мой выбор но я достаточно неплохо знаю и имею опыт работы с JavaFX, так что как-то туда логично падает выбор. Подумал на JSF, сервер и работу через браузер (там есть опыт но немного), но мне кажется тут это явное переусложнение. Также есть возможность делать на C#, но мне хочется убить двух зайцев и попробовать пообщаться с новыми фрэймворками (не об FX речь) на java, скажем так.

Собственно вопросы:
1. Как лучше (оптимальнее) общаться с БД?
- JDBC как-то кажется скучноватым, но может тут и не надо мудрствовать? Программа реально небольшая для довольно "узких" задач.
- JPA - знаю как мне кажется неплохо.
- Hybernate - знаю но хуже JPA, поэтому и думаю использовать его.
- Есть лучшие альтернативы?

2. Можно ли и стоит ли прикрутить к этому Spring?
У меня нет с ним реального опыта но последнее время я учитывая его высокую популярность начал его изучать и помаленьку "играть" с ним дома. Однако тут определенно мне не понадобится ни MVC ни Security (насколько я понимаю). Могу предположить что он мог бы помочь в части аспектов с логированием и возможно транзакциями (ну помимо IoC). Задаю этот вопрос потому что очень хочу его добавить чтобы как-раз таки познакомиться ближе. Стоит ли? Для чего в рамках этой задачи его можно было бы использовать?

Ну вот и все. Жду ваших советов кто и как сегодня решает такие вроде пустяковые задачи. Заранее спасибо!
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229502
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное количество Swing-UI приложений написано вообще без Spring
поэтому я-бы сильно усомнился в полезности этого сочетания.
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229503
RuslanGab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonОгромное количество Swing-UI приложений написано вообще без Spring
поэтому я-бы сильно усомнился в полезности этого сочетания.

Ну да об чем и речь. Я без него это на FX напишу и будет работать. Я как раз и ищу повод для себя чтобы его прикрутить и поизучать наконец "в рабочее" время:)
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229504
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGab,

1. я бы однозначно рекомендовал Spring + maven (потому что раньше сам начинал как попало, но потом познакомился с технологией и охотно отказался от JEE)
2. JPA / Hibernate. В худшем случае JDBC опять же на Spring
3. UI на твой вкус. Можешь взять JSF, но тогда надо контейнер (томкат), ну и получается web-application, тогда Spring MVC подключать. Можно конечно все ручками прикрутить, но получится фанерно, хотя работать будет. Ну и плевание на всю жизнь обеспечится при поддержке
SWING - устарел конечно, но "старый конь борозды не портит"
MVC = Model View Controller стандартная реализация UI, ну как без нее ? Swing - просто классический пример реализации, хотя тяжеловат получился. Если swing то найди книжку Портянкина. Он хорошо его описывает

Spring Security работает в web, на основе фильтров.

короче - однозначно Spring, потом легко будет и в вэб перетащить и АОP сразу и DI сразу получаешь.

Мавеном делай мультимодуль проект, Один модуль обзывай как (например) "core", а другие как GUI. Там уж на выбор твоя коробочка и на вэб сможет работать и в desktop

успехов
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229505
RuslanGab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kadet,
Спасибо!

kadet1. Spring + maven
Я не так силен в спринге... Он может заменить JPA/Hibernate? Как раз "для опыта" мне было бы наверное идеально.

UI как я и писал - много чего делалось на JavaFX за последний год, так что думаю остаться на этом решении. Тащить все в вэб - это опять же как я и писал и вы отметили влечет за собой рулон всего прочего, что этому проекту точно не понадобится.

Связка JavaFX + Spring (вместо JPA/Hibernate) + SQL Server будет удачным решением? Ну maven само собой...
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229510
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМне поставили совершенно несложную задачу: сделать десктопное приложение для локальной работы с БД, и я понял что не уверен как это сделать лучше, ибо, опыта не много (а тот что есть - работа через JBoss или GlassFish, а тут вдруг бац и вроде надо "тупо напрямую"
Выбирать самый быстрый/простой/тупой вариант. SWT + Jdbc. В оставшееся время пожарить шашлычка.
Оффтоп:
А Вы, кстати, похоже попали, сами того не замечая, под явление, описанное в соседнем топике "Способы мотивации программистов без денег".
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229514
RuslanGab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
no56892Выбирать самый быстрый/простой/тупой вариант. SWT + Jdbc. В оставшееся время пожарить шашлычка.
Оффтоп:
А Вы, кстати, похоже попали, сами того не замечая, под явление, описанное в соседнем топике "Способы мотивации программистов без денег".

Не согласен, хотя что-то в этом есть конечно.
Я как раз хочу скилов себе набить. Это задание можно сделать быстро и оно будет работать. Я хочу за счет рабочего времени попробовать узнать новое а не сделать "как умею". Ну и сделать хорошо вообще-то тоже хочется всегда;)
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229586
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аффтар!
Что за вопросы?
Для изучения пихай в свой проект хоть стописят технологий. Вопрос то в чем?
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229617
RuslanGab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Аффтар!
Что за вопросы?
Для изучения пихай в свой проект хоть стописят технологий. Вопрос то в чем?
1. Как лучше (оптимальнее) общаться с БД?
2. Какие задачи в таком маленьком проекте можно/стоит возложить на Spring (или его подключение будет излишним)?
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229620
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGab,

Может быть flyway подойдёт для изменения структуры базы данных.

С уважением, Валентин
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229621
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kadetMVC = Model View Controller стандартная реализация UI, ну как без нее ? Swing - просто классический пример реализации, хотя тяжеловат получился.
Аж передернуло. Во-первых Spring это не MVC. Во-вторых классический MVC удобен для Web, но не для GUI. ИМХО, лучшим паттерном для GUI является MVVM, которая активно использует биндинг. Как для JavaFX, так и для Swing.
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229622
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin KolesnikovМожет быть flyway подойдёт для изменения структуры базы данных.

Если структура БД является частью проэкта, то Liquibase или Flyway обязательны к применению.
Но, есть одно огромное "но". Если у вас 2-tier, то надо быть уверенным что только один пользователь накатывает апдейты на базу.
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229625
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGab1. Как лучше (оптимальнее) общаться с БД?

Всё очень сильно зависит от БД. Если у вас ветвистые ассоциации, когда нужно выбирать из десятка таблиц за раз, а потом ещё все это дело аккуратно апдейтить, то однозначно JPA/Hibernate.
Если же пользователь работает с табличными данными и, максимум, использует одну таблицу в один момент времени, то можно подумать над вариантами. Я бы ещё jOOQ/QueryDSL посоветовал посмотреть. Но будут сложности чтобы подружить с JavaFX свойствами.

RuslanGab2. Какие задачи в таком маленьком проекте можно/стоит возложить на Spring (или его подключение будет излишним)?
Имхо, будет излишним. Dependency Injection можно и самому наваять без всякого Spring. AOP не факт что понадобится.
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229642
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGabGUI на мой выбор но я достаточно неплохо знаю и имею опыт работы с JavaFX, так что как-то туда логично падает выбор. Подумал на JSF, сервер и работу через браузер (там есть опыт но немного), но мне кажется тут это явное переусложнение. Также есть возможность делать на C#, но мне хочется убить двух зайцев и попробовать пообщаться с новыми фрэймворками (не об FX речь) на java, скажем так.
Надо очень сильно смотреть на требования.
Swing, старый и нужно уметь с ним обращаться, чтобы сохранить стройную архитектуру. Но при это он стабильно кросс-платформенный и если руки растут откуда надо, то на нем можно вообще всё.
JavaFX клевый, но есть риск отгрести неожиданные баги, особенно за пределами Windows.
SWT/JFace - очень на любителя (фаната Eclipse). Но есть смысл почитать про фичи Eclipse RCP, вдруг они будут полезными (окна настроек, редакторы, широкие возможности кастомизации компоновки разных перспектив).

RuslanGab- JDBC как-то кажется скучноватым, но может тут и не надо мудрствовать? Программа реально небольшая для довольно "узких" задач.
Голый JDBC - сразу нет. Нужны обертки, хотя бы в виде Apache Commons. Транзакции, порядок вставки в несколько таблиц, маппинг на объекты, все это писать самому.


RuslanGab- JPA - знаю как мне кажется неплохо.
- Hybernate - знаю но хуже JPA, поэтому и думаю использовать его.

JPA это всего лишь API, а Hibernate - одна из его реализаций. По этому фраза "JPA - знаю" выглядит как серьезное заблуждение.
В Hibernate есть интересные фичи, которые очень могут помочь. Например dirty check (легко апдейтить) и персистентные коллекции (удобно удалять). А так же оптимистический лок, который так нужен для 2-tier.
Но стоит понимать, что если у вас табличные данные и нужно, например, держать открытый курсор и скролить по нему, то Hibernate тут лишний.
Нужно правильно организовать работу с Session/EntityManager - они не предназначены для множества разнообразных транзакций.

RuslanGab- Есть лучшие альтернативы?

MyBatis, jOOQ/QueryDSL - они не лучшие, они другие.

RuslanGab2. Можно ли и стоит ли прикрутить к этому Spring?

Можно. Но стоит ли? Мне, для небольших задач, вполне достаточно самостоятельно инжектить структуру через конструктор.

RuslanGabУ меня нет с ним реального опыта но последнее время я учитывая его высокую популярность начал его изучать и помаленьку "играть" с ним дома. Однако тут определенно мне не понадобится ни MVC ни Security (насколько я понимаю). Могу предположить что он мог бы помочь в части аспектов с логированием и возможно транзакциями (ну помимо IoC). Задаю этот вопрос потому что очень хочу его добавить чтобы как-раз таки познакомиться ближе. Стоит ли? Для чего в рамках этой задачи его можно было бы использовать?
Все верно. Если есть задача подтянуть Spring, то я бы использовал его.

RuslanGabНу вот и все. Жду ваших советов кто и как сегодня решает такие вроде пустяковые задачи. Заранее спасибо!
Использовал JavaFX. Понравилось, но так как Swing знаю на много лучше, то грешу тем что для мелких задач беру его. Выбор же способа работы с базой сильно зависит от того как именно с ней работать.
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229648
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Аффтар!
Что за вопросы?
Для изучения пихай в свой проект хоть стописят технологий. Вопрос то в чем?
Двумя руками "за". Если есть свобода выбора, и проект мелкий и не критичный, но бери самые не знакомые, но перспективные технологии. Разберешься в достоинствах и недостатках и уже для большого и серьезного проекта сможешь сделать правильный выбор.
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229666
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGab1. Как лучше (оптимальнее) общаться с БД?

JDBC - оптимальнее не бывает.
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229670
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGabЯ не так силен в спринге... Он может заменить JPA/Hibernate? Как раз "для опыта" мне было бы наверное идеально.
Вопрос звучит очень странно. Как может-ли "машина" заменить "двигатель".

Есть модуль SpringData http://projects.spring.io/spring-data/

Он в каком-то разрезе представляет собой ORM но я не уверен что можно ставить знак равно
между Hibernate и SpringData. Возможно есть нюансы в использовании и возможностях.
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229671
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕсть модуль SpringData http://projects.spring.io/spring-data/

Он в каком-то разрезе представляет собой ORM но я не уверен что можно ставить знак равно
между Hibernate и SpringData.

SpringData это обертка над JPA, а не ORM.
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229674
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarrickJDBC - оптимальнее не бывает.
Если работать с таблицами, то, да. Если с объектами, то будет огромная оптимальная лапша кода даже для простейших операций.
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39229684
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RuslanGabна Spring (или его подключение будет излишним)?
все доводы об оптимальности\оверхеде и скорости разработки разбиваются о твоё: "Времени-вагон и я хочу изучать новое".
Поэтому топик в топку)).
Удачи!
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39230328
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczkadetMVC = Model View Controller стандартная реализация UI, ну как без нее ? Swing - просто классический пример реализации, хотя тяжеловат получился.
Аж передернуло. Во-первых Spring это не MVC. Во-вторых классический MVC удобен для Web, но не для GUI. ИМХО, лучшим паттерном для GUI является MVVM, которая активно использует биндинг. Как для JavaFX, так и для Swing.

1. "Spring MVC" это стандартная реализация шаблона MVC для WEB на базе Spring. Spring это платформа, которая включает в себя в частности реализацию MVC для WEB. Она так и называется " Spring WEB MVC - framework". Мне например понравился больше GWT MVP (Model View Presenter). К сожалению почему-то google закрыл GWT.

2. MVC это шаблон. SWING - яркий представитель реализации этого шаблона. Я не берусь утверждать, что разработчикам удалось его реализовать со 100% чистотой. Если рассмотреть любой компонент библиотеки, то все они явно разделены на модель, UI и контроллер. JTable это прекрасный пример.

@Blazkowicz: 1 и 2 это просто комментарий, а не критика. Я думаю тут имеет место неполное понимание вследствии плохого изложения мой мысли

В одном из проектов (spring + maven + swing + DDD) я использовал swing просто для реализации UI. Приложение получилось в итоге простым и ясным кодом. В любом случае реализация UI это дело личное, хотя придерживание шаблонов все-таки облегчит сопровождение продукта

RuslanGab Я не так силен в спринге... Он может заменить JPA/Hibernate? Как раз "для опыта" мне было бы наверное идеально

Spring не заменяет JPA (Java Persistance API). Spring облегчает жизнь разработчика в использовании тех или иных технологий, в частности JPA. Кажется по умолчанию, spring в реализации JPA использует Hibernate, но это все можно перенастроить. Вот пример использования spring/jpa

Потом Spring предлогает по умолчанию DI (Dependency Injection). Ну как от этого "наркотика" добровольно отказаться ?

Я ничего против не имею других технологий, просто как-то "подсел" на spring и вполне доволен (кроме "spring web service").

желаю всех благ
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39230396
RuslanGab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще раз всем спасибо!

Учитывая что время есть, но его таки не вагон (1,5 месяца но с учетом того что на это получится тратить 30-50% рабочего времени), решил все же сделать некую комбинацию из того что знаю и удобно + новое и для себя:
JavaFX, Spring (для начала просто IoC и аспекты для логирования а там видно будет), Hibernate или JDBC (еще не знаю что там будет надо из базы и как - если совсем "тупо" то JDBC). Ну база SQL Server - это было изначально. Собирать хочу глянуть в сторону Градла (вообще не щупал никогда) попробовать, но если будет затык то родной мавен выручит.
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39230519
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kadet@Blazkowicz: 1 и 2 это просто комментарий, а не критика. Я думаю тут имеет место неполное понимание вследствии плохого изложения мой мысли
Какая ещё критика? У вас, просто, что не предложение, то набор заблуждений.
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39231068
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringData/Hibernate/jpa. Борисов негодуе. Пока не комментирую. Слушаю.

YouTube Video
...
Рейтинг: 0 / 0
Помогите советом: десктопное приложение на Java для работы с БД
    #39231092
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нифига он не негодует.

Юзкейс по переходу с одной базы на другую в продакшене практически равен нулю, а переход с типа хранилища на другое так вообще стремиться к децлу. Он в конце так сам и говорит - это все кул для прототипа\стартапа. Из этого по логике следует вопрос о применимости всего это добра в реальной системе. По факту это будет уже не одна прослойкавокруг хранилища а две(одна API к хранилищу а вторая это spring-data related). И если API обычно эволюционирует быстро и сам вендор его поддерживает, то эволюция spring-data уже на совести разрабов этого самого spring-data, что наглядно и продемнострировано на примере кассандры. Та же фигня нпример с elasticSearch.
...
Рейтинг: 0 / 0
25 сообщений из 530, страница 1 из 22
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите советом: десктопное приложение на Java для работы с БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]