Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: GUI и Java FX приложения > Доступ к БД из Swing. Это сейчас делают ? |
Автор: hardfun 12.3.2008, 00:22 |
hi all. Поизучав в течение почти года JFC (с упором на Swing) и получив реальное наслаждение от стройности и продуманности Java SE, я с удивлением обнаружил, что бОльшая часть существующих java-вакансий относится вовсе не к разработке клиентских GUI, а к серверным составляющим крупных приложений (т.е. к Java EE). Где-то даже написано было, что по историческим причинам сегмент java-программ -- это серверные модули, но никак не клиентские части, ибо AWT об%cр@лась тут выше крыши и все теперь думают, что java с GUI не дружит "никак и никогда". В туториалах по Java EE создание клиентского GUI сводится к формированию web-страниц (и в результате, как я увидел, совершенно убогих по внешнему виду и, главное, по скорости реакции в сравнении с тем ГУИ, который можно сделать в Swing'e). Из всех туториалов, где изложен доступ к БД (JavaDB aka Derby) из Swing-приложения, я запомнил только тот, что висит на сайте NetBeans.org Мой вопрос: а что, средние по сложности программы с доступом к БД (например, какое-нибудь складское приложение) теперь только под web ваяют и непременно через трёхзвенку ? Есть ли тут кто-нибудь, кто делал ОБЫКНОВЕННОЕ клиент-серверное приложение с GUI на Swing'e, без всякого web-интерфейса ? Или есть ли у кого ссылки на эту тему (а еще лучше e-book'и ![]() Заранее спасибо за ответы. |
Автор: serger 12.3.2008, 06:25 |
Ну я делал. Нюансов хватает, опыт не совсем положительный. ( |
Автор: ecologist 12.3.2008, 10:26 | ||
Система Swing мне тоже очень нравится своей архитектурой. Мы как-то раз делали такое - пришлось писать кое-какие классы вокруг, но вообщем-то не очень сложно. Есть только несколько проблем: 1. Нормального графического редактора по сути дела нет - правда я уже года 4 ничего не писал такого, но тогда качество сгенеренного кода оставляло желать лучшего. Так что много приходилось делать руками. На Delphi или .NET разработка GUI идет гораздо быстрее. 2. Скорость работы приложения все-таки слабее, чем у того же Delphi или .NET. Учитывая, что подавляющее большинство клиентских компов работает под Виндой, то эффективность разработки GUI на Java пока видимо не очень хороша. Я думаю, что сегодня уже можно делать неплохое GUI на Java - но видимо в эту нишу рынка сложно пройти. Вот и нет спроса. Во всяком случае пока. Дальше видно будет. |
Автор: AntonSaburov 12.3.2008, 19:22 |
Я вообще не понял почему Swing должен ходить к базе данных. Он ввобщем-то для графики. А как ты ходишь к базе - да хоть через RMI или Web-Services - важно, чтобы данные отображались. ри правильном написаниии модели можно хоть XML показывать в виде таблицы. |
Автор: hardfun 14.3.2008, 00:23 |
> (AntonSaburov) Я вообще не понял почему Swing должен ходить к базе данных Я не говорю, что к доступ к базе ДОЛЖЕН быть только через Swing. Но в Swing'e есть такие замечательные вещи, как JTable (для отображения данных в виде таблиц), JTree (для отображения всяких иерархич. справочников), JSplitPane для всяких там help-систем с фреймовой (в терминах web'a) структурой и др. И все эти средства дают картинку, как в нормальном толстом клиенте, а не "нечто" нацарапанное в браузёре. Года три тому назад я пытался ваять доступ к БД через браузёр (к СУБД Cache). И сразу столкнулся с тем, что в M$ IE какая-то фишка работала, а в Мозилле - нет (или не так, как надо было). Красивый интерфейс, независящий от того, какой браузёр поставил у себя юзер, сделать, как я тогда понял, весьма трудно. Полный "абзац" был в момент, когда комбо-список вдруг стал "выглядывать" из-под созданного на лету окна для инкрементного поиска. Оказалось, видите ли, что это "низкоуровневый объект" и спрятать его под div-слоем просто так не получится. Надо ILAYER еще подкладывать (и это только в M$ IE такой фокус проходит; в других браузёрах - нет). Хватало и других "весёлостей". Например, надо было искуственно задерживать на 50мс фокусировку на поле ввода (кажется), иначе M$ IE просто "проскакивал" этот фокус. Про эту задержку я даже в книжке "Библия Javascript" (автор, кажется, Гудман ?) видел соотв-щее замечание. Даже такой простой эффект, как смена указателя мыши на "песочные часы" в момент записи в БД введенных данных, и тот получился с гимором: на двух СОВЕРШЕННО одинаковых тачках M$ IE работал по-разному (на одной песочные часы были, на другой нет). Но еще сложнее, как мне тогда показалось, было добиться приемлемой скорости загрузки окон и отклика. Конечно, тогда отрицательно сказалось, что я всё делал с нуля, без всякого опыта. Но трудозатраты были просто немеренными по сравнению с тем, что можно сделать через Swing (как мне видно с высоты сегодняшнего дня). Вот я и задал вопрос: чем так Swing оказался не мил, почему его не рассматривают как одно из основных средств разработки клиентской части при доступе к БД ? Допускаю, что в чём-то глубоко заблуждаюсь. Поправьте, плз, если что не так. Ссылки на demo-примеры работающих web-приложений (складского толка, в первую очередь) будут приняты с благодарностью. Добавлено через 1 минуту и 27 секунд > (serger) Ну я делал. Нюансов хватает, опыт не совсем положительный. ( На чём "погорели", если не секрет ? Что именно было "не совсем положительным" ? |
Автор: w1nd 14.3.2008, 01:56 | ||
Кто не рассматривает? Я рассматриваю. А не мил такой клиент в основном тем, что пользователю нужно ставить jre (да ещё не абы как) и вообще необходимостью что-то ставить. |
Автор: ecologist 14.3.2008, 08:39 | ||
Это IMHO слабый аргумент - установить jre не составляет больших хлопот. |
Автор: powerOn 14.3.2008, 09:26 | ||
Это наиболее часто используемый аргумент. Хотя действительно слабый. |
Автор: Hidrag 14.3.2008, 10:03 |
Я делал, опыт положительный... Да и вакансий по j2se все больше и больше стало появляться и зп там не ниже ee'шных. Еще занимался поддержкой огромного (не побоюсь этого слова) j2se приложения (более 3000 классов) аналога 1С бухгалтерии, полностью на свинге. Так что не все так плохо ;) |
Автор: COVD 15.3.2008, 14:21 | ||
Я тут минусов понаставил. Обьяснюсь.
... для программистов и компьютерных фанатов. И вообще, отчего на форуме программистов java (!) периодически возникают вопросы, касающиеся установки java? Это же легко. |
Автор: Бонифаций 15.3.2008, 14:34 | ||
1) интерфейс к базе вообще требует определенных знаний. Например надо где то указать реквизиты доступа к базе. Поэтому совсем чайники не смогут это сделать независимо от того java, .net или c++... 2) Во многих случаях установкой занимается сисадмин. Если вы делаете приложение для intranet внутри фирмы к примеру.. Тогда установка jre труда не составит. 3) вы можете поставлять в дистрибутиве вашей программе и jre тоже. И написать установочный скрипт, который поставит jre если ее нет перед установкой вашей программы. В общем не считаю это проблемой. |
Автор: COVD 15.3.2008, 15:34 |
"сисадмин", "дистрибутив",... Понятно. Вы разработали сервис. Ваш агент договорился с потенциальным клиентом ( крупной компанией ) , не имеющей никакого отношения к программированию, о встрече для демонстрации продукта в действии, что уже непросто. В каком случае выше шансы на успех - если он скажет "Ничего устанавливать не надо" или начнет про сисадминов с дистрибутивами? Вы разработали нечто для широкой публики. Вашу службу тех.поддержки одолевают какие-то "лохи", у которых "не работает". После длительных переговоров выясняется, что java не установлена, хотя пользователь клянется, что "устанавливал". При этом очевидно, что человек очень далек от компьютеров. |
Автор: w1nd 15.3.2008, 21:40 |
COVD, проблем при установке jre не больше, чем при установке directx. |
Автор: COVD 15.3.2008, 23:06 |
Идеал - это одно нажатие кнопки. Буквально. Если уже так - значит, погорячился. PS. Деинсталировал все версии java на компьютере и стал инсталлировать jre через интернет. Cначала, ради эксперимента, попробовал верификацию ( кнопочка такая ) - примерно минута поиска и не найдя java мне показали страницу, гда показаны, какие должны быть результаты, если java найдена. т.е. не нашли, но прямо не сказали. Нажал back в браузере и снова оказался на странице с кнопкой download. Дальше все просто - несколько нажатий ( отказался от тулбара гугла, подтвердил соглашение) и готово. Загрузились 70М. У меня проблемы не случилось. |
Автор: powerOn 16.3.2008, 01:39 |
Как часто эта тема обсуждалась. ![]() При определённой настойчивости разработчиков, можно добиться вполне достойных результатов. Что собственно и было сделано в нашем проекте. Мы вообще JRE установщик не использовали. Сначала программу обработали launch4j, благодаря чему все что необходимо для работы оказалось в одной папке (включая JRE) - скопировал и работай. Потом эту папку мы закатали в инсталлер с помощью InstallShield's, он то и занимался установкой - просто распаковал и ярлыки настроил. Нареканий от пользователей не было. |
Автор: tomolax 17.4.2008, 10:39 |
как сложно будет прописать путь к базе MySQL (можно ли вообще так сделать), если приложение написано с GUI на Swing'e???? |
Автор: fixxer 17.4.2008, 10:46 |
Вынести настройки в файл. |
Автор: Lisus 17.4.2008, 17:11 | ||
Извините, что может не в тему выражаюсь, но Винду ведь тоже ставить надо. Без неё ни Ворд ни Ексель ни прочие проделки дяди Билла не идут. Почему же этот факт не остановливает потребителей. Винду тоже не криво поставить надо. В большинстве дистрибутивов линукса уже стоит пакет Джавы. Да и что-то сложного в установке JRE под винду я не увидел, помойму пару раз кликнуть на кнопки (подтверждаю и папка для установки выбрана) особых мозговых резервов не требует. Да и притом эта штука ставиться один раз и навсегда. Добавлено через 14 минут и 58 секунд А теперь в тему. Из всех более-менее часто используемых компонент вопросы вызывает только Table или JTable. У меня в дизайнере JBorland 2005 куча всяких элементов типа: Вкладка - dbSwing^ JdbRadioButton JdbTree ..... Вкладка - dbSwing Models DBListModel DBLIstBirned ...... (По названию явно как-то с базой данных связано) Сам не пользовался, но они есть. Никаких сложностей при совокуплению графического интерфейса на Джава и работай с базой данных (или сетью) на той же Джава я не вижу. Но Дизайнеры на Delphi конечно удобнее. |
Автор: Lisus 17.4.2008, 17:28 |
А если ещё и для себя пишешь (на мелкие корявости можно положить кое-что), то вообще зашибись. |