|
|
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Знаю что тема по большому счету замусолена, но что-то везде все не свежо что я нарыл... Мне поставили совершенно несложную задачу: сделать десктопное приложение для локальной работы с БД, и я понял что не уверен как это сделать лучше, ибо, опыта не много (а тот что есть - работа через JBoss или GlassFish, а тут вдруг бац и вроде надо "тупо напрямую" БД - SQL Server. Это неизменяемо. Работает локально. GUI на мой выбор но я достаточно неплохо знаю и имею опыт работы с JavaFX, так что как-то туда логично падает выбор. Подумал на JSF, сервер и работу через браузер (там есть опыт но немного), но мне кажется тут это явное переусложнение. Также есть возможность делать на C#, но мне хочется убить двух зайцев и попробовать пообщаться с новыми фрэймворками (не об FX речь) на java, скажем так. Собственно вопросы: 1. Как лучше (оптимальнее) общаться с БД? - JDBC как-то кажется скучноватым, но может тут и не надо мудрствовать? Программа реально небольшая для довольно "узких" задач. - JPA - знаю как мне кажется неплохо. - Hybernate - знаю но хуже JPA, поэтому и думаю использовать его. - Есть лучшие альтернативы? 2. Можно ли и стоит ли прикрутить к этому Spring? У меня нет с ним реального опыта но последнее время я учитывая его высокую популярность начал его изучать и помаленьку "играть" с ним дома. Однако тут определенно мне не понадобится ни MVC ни Security (насколько я понимаю). Могу предположить что он мог бы помочь в части аспектов с логированием и возможно транзакциями (ну помимо IoC). Задаю этот вопрос потому что очень хочу его добавить чтобы как-раз таки познакомиться ближе. Стоит ли? Для чего в рамках этой задачи его можно было бы использовать? Ну вот и все. Жду ваших советов кто и как сегодня решает такие вроде пустяковые задачи. Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 23:46 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
Огромное количество Swing-UI приложений написано вообще без Spring поэтому я-бы сильно усомнился в полезности этого сочетания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 00:00 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
maytonОгромное количество Swing-UI приложений написано вообще без Spring поэтому я-бы сильно усомнился в полезности этого сочетания. Ну да об чем и речь. Я без него это на FX напишу и будет работать. Я как раз и ищу повод для себя чтобы его прикрутить и поизучать наконец "в рабочее" время:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 00:03 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
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 успехов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 00:08 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
kadet, Спасибо! kadet1. Spring + maven Я не так силен в спринге... Он может заменить JPA/Hibernate? Как раз "для опыта" мне было бы наверное идеально. UI как я и писал - много чего делалось на JavaFX за последний год, так что думаю остаться на этом решении. Тащить все в вэб - это опять же как я и писал и вы отметили влечет за собой рулон всего прочего, что этому проекту точно не понадобится. Связка JavaFX + Spring (вместо JPA/Hibernate) + SQL Server будет удачным решением? Ну maven само собой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 00:16 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
авторМне поставили совершенно несложную задачу: сделать десктопное приложение для локальной работы с БД, и я понял что не уверен как это сделать лучше, ибо, опыта не много (а тот что есть - работа через JBoss или GlassFish, а тут вдруг бац и вроде надо "тупо напрямую" Выбирать самый быстрый/простой/тупой вариант. SWT + Jdbc. В оставшееся время пожарить шашлычка. Оффтоп: А Вы, кстати, похоже попали, сами того не замечая, под явление, описанное в соседнем топике "Способы мотивации программистов без денег". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 00:28 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
no56892Выбирать самый быстрый/простой/тупой вариант. SWT + Jdbc. В оставшееся время пожарить шашлычка. Оффтоп: А Вы, кстати, похоже попали, сами того не замечая, под явление, описанное в соседнем топике "Способы мотивации программистов без денег". Не согласен, хотя что-то в этом есть конечно. Я как раз хочу скилов себе набить. Это задание можно сделать быстро и оно будет работать. Я хочу за счет рабочего времени попробовать узнать новое а не сделать "как умею". Ну и сделать хорошо вообще-то тоже хочется всегда;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 00:35 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
Аффтар! Что за вопросы? Для изучения пихай в свой проект хоть стописят технологий. Вопрос то в чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 09:13 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
Petro123Аффтар! Что за вопросы? Для изучения пихай в свой проект хоть стописят технологий. Вопрос то в чем? 1. Как лучше (оптимальнее) общаться с БД? 2. Какие задачи в таком маленьком проекте можно/стоит возложить на Spring (или его подключение будет излишним)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 10:04 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 10:06 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
kadetMVC = Model View Controller стандартная реализация UI, ну как без нее ? Swing - просто классический пример реализации, хотя тяжеловат получился. Аж передернуло. Во-первых Spring это не MVC. Во-вторых классический MVC удобен для Web, но не для GUI. ИМХО, лучшим паттерном для GUI является MVVM, которая активно использует биндинг. Как для JavaFX, так и для Swing. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 10:08 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
Valentin KolesnikovМожет быть flyway подойдёт для изменения структуры базы данных. Если структура БД является частью проэкта, то Liquibase или Flyway обязательны к применению. Но, есть одно огромное "но". Если у вас 2-tier, то надо быть уверенным что только один пользователь накатывает апдейты на базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 10:09 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
RuslanGab1. Как лучше (оптимальнее) общаться с БД? Всё очень сильно зависит от БД. Если у вас ветвистые ассоциации, когда нужно выбирать из десятка таблиц за раз, а потом ещё все это дело аккуратно апдейтить, то однозначно JPA/Hibernate. Если же пользователь работает с табличными данными и, максимум, использует одну таблицу в один момент времени, то можно подумать над вариантами. Я бы ещё jOOQ/QueryDSL посоветовал посмотреть. Но будут сложности чтобы подружить с JavaFX свойствами. RuslanGab2. Какие задачи в таком маленьком проекте можно/стоит возложить на Spring (или его подключение будет излишним)? Имхо, будет излишним. Dependency Injection можно и самому наваять без всякого Spring. AOP не факт что понадобится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 10:13 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
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 знаю на много лучше, то грешу тем что для мелких задач беру его. Выбор же способа работы с базой сильно зависит от того как именно с ней работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 10:28 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
Petro123Аффтар! Что за вопросы? Для изучения пихай в свой проект хоть стописят технологий. Вопрос то в чем? Двумя руками "за". Если есть свобода выбора, и проект мелкий и не критичный, но бери самые не знакомые, но перспективные технологии. Разберешься в достоинствах и недостатках и уже для большого и серьезного проекта сможешь сделать правильный выбор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 10:30 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
RuslanGab1. Как лучше (оптимальнее) общаться с БД? JDBC - оптимальнее не бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 10:40 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
RuslanGabЯ не так силен в спринге... Он может заменить JPA/Hibernate? Как раз "для опыта" мне было бы наверное идеально. Вопрос звучит очень странно. Как может-ли "машина" заменить "двигатель". Есть модуль SpringData http://projects.spring.io/spring-data/ Он в каком-то разрезе представляет собой ORM но я не уверен что можно ставить знак равно между Hibernate и SpringData. Возможно есть нюансы в использовании и возможностях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 10:45 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
maytonЕсть модуль SpringData http://projects.spring.io/spring-data/ Он в каком-то разрезе представляет собой ORM но я не уверен что можно ставить знак равно между Hibernate и SpringData. SpringData это обертка над JPA, а не ORM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 10:47 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
GarrickJDBC - оптимальнее не бывает. Если работать с таблицами, то, да. Если с объектами, то будет огромная оптимальная лапша кода даже для простейших операций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 10:47 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
RuslanGabна Spring (или его подключение будет излишним)? все доводы об оптимальности\оверхеде и скорости разработки разбиваются о твоё: "Времени-вагон и я хочу изучать новое". Поэтому топик в топку)). Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 10:57 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
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"). желаю всех благ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 20:08 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
Еще раз всем спасибо! Учитывая что время есть, но его таки не вагон (1,5 месяца но с учетом того что на это получится тратить 30-50% рабочего времени), решил все же сделать некую комбинацию из того что знаю и удобно + новое и для себя: JavaFX, Spring (для начала просто IoC и аспекты для логирования а там видно будет), Hibernate или JDBC (еще не знаю что там будет надо из базы и как - если совсем "тупо" то JDBC). Ну база SQL Server - это было изначально. Собирать хочу глянуть в сторону Градла (вообще не щупал никогда) попробовать, но если будет затык то родной мавен выручит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 22:21 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
kadet@Blazkowicz: 1 и 2 это просто комментарий, а не критика. Я думаю тут имеет место неполное понимание вследствии плохого изложения мой мысли Какая ещё критика? У вас, просто, что не предложение, то набор заблуждений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 09:11 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 18:27 |
|
||
|
Помогите советом: десктопное приложение на Java для работы с БД
|
|||
|---|---|---|---|
|
#18+
Да нифига он не негодует. Юзкейс по переходу с одной базы на другую в продакшене практически равен нулю, а переход с типа хранилища на другое так вообще стремиться к децлу. Он в конце так сам и говорит - это все кул для прототипа\стартапа. Из этого по логике следует вопрос о применимости всего это добра в реальной системе. По факту это будет уже не одна прослойкавокруг хранилища а две(одна API к хранилищу а вторая это spring-data related). И если API обычно эволюционирует быстро и сам вендор его поддерживает, то эволюция spring-data уже на совести разрабов этого самого spring-data, что наглядно и продемнострировано на примере кассандры. Та же фигня нпример с elasticSearch. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 19:32 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39229500&tid=2124018]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 377ms |

| 0 / 0 |
