Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/28: Рейтинг темы: голосов - 28, средняя оценка - 4.79
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517

Spring: работа с базой данных

07.04.2013, 14:29. Показов 5973. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо сделать простенькое приложение с spring (вообще всё равно будет это через jdbc или же с использованием hibernate) которое будет работать с базой данных. Тоесть нужен сервер который будет тягать данные с базы и нужен клиент который будет получать данные от сервера (ну и слать запросы на обновление данных например) ну и выводить их как-то пользователю.
Проблема в том что книги по spring что я нашёл пишут как-то наскоками и описав подробно что-то пропускают кучу кода и показывают какой-то другой аспект, в итоге собрать это всё и пощупать невозможно и нифига непонятно как же мне это реализовать чтобы засунуть в конце концов на рыбо-сервер мой сприговский сервер, к которому сможет подключиться клиент.

Где можно посмотреть готовый пример такого приложения (книга / статья /etc) или может быть у вас у кого завалялся такой (важно чтобы использовался именно spring). Я уже создавал похожую тему, но тогда с меня требовали немного другое, а теперь вот передумали и хотят точно увидеть спринг. Ато странно выходит: вроде как Hibernate этот описывается как сильно популярная технология (в книгах так), а копни в гугле так информации с гулькин нос и работай с базой как хочешь.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.04.2013, 14:29
Ответы с готовыми решениями:

Работа с базой данных
доброго вечера, друзья. помогите девушке) задали нам такое задание: написать базу данных с использованием JAVADB. в которую занести...

Работа с MySQL базой данных
Сделал я кнопку "Зарегистрироваться", только она не работает. Вот код: JButton bt1 = new JButton("Зарегистрироваться"); ...

Работа с MySQL базой данных
Когда я ввожу в текстовое поле значение из базы данных и нажимаю кнопку - ничего не происходит public class prog { public static...

12
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
07.04.2013, 15:13
Цитата Сообщение от Gepar Посмотреть сообщение
в гугле так информации с гулькин нос
просто вся нужная инфа находится на http://hibernate.org/docs берём свою версию и открываем под неё доку, там всё что нужно для работы
Спринг обвешивается АОПом для того чтобы обмотать транзакциями POJO ентити без аннотаций, в хмл это конечно выглядит адски, но имеет свои бонусы взамен
Ну и опять же по спрингу есть всё на спрингсорце http://static.springsource.org... tmlsingle/ не пройдя по документации по всем темам подряд и не изучив отдельные конфигурационные параметры у вас все конфиги хмл будут вызывать головную боль

у товарища mkyong все примеры есть, ничего что они со старого спринга, принципы с тех пор не сильно изменились, тем более что в ченжлогах всегда можно узнать разницу
объём конечно большой, но поистижимый
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
07.04.2013, 16:17  [ТС]
mutagen, всё хорошо, но буржуйский Вообще я с англ. дружу и какую-нибудь статью вполне могу почитать и разобраться если я знаком примерно с этой технологией, но вот целую книгу / документацию по незнакомым мне вещам прочитать достаточно сложно вот и хотел может готовый пример пощупать и посмотреть как оно работает, а потом выгугливать уже что непонятно.

Добавлено через 58 секунд
Цитата Сообщение от mutagen Посмотреть сообщение
у товарища mkyong все примеры есть
это вы о чём сейчас?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
07.04.2013, 16:21
https://www.google.com.ua/sear... e&ie=UTF-8

Добавлено через 1 минуту
Цитата Сообщение от Gepar Посмотреть сообщение
всё хорошо, но буржуйский
к сожалению наши ещё не написали
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
07.04.2013, 17:28  [ТС]
Цитата Сообщение от mutagen Посмотреть сообщение
к сожалению наши ещё не написали
Так написали, у меня аж две книги по spring и hibernate, но кто их учил так писать я не знаю. Первая на 300 страницах в форме для управленческого персонала написана (от это мы планируем, от это заставляем делать программистов, а они там разберутся) и вообще ни о чём (давно таких пустых книг не видел), а во второй вроде как и по делу, но всё так кусками показано что собрать проект дописав самому методом тыка можно разве что в первых 5 главах, а дальше уж совсем никак

Но это ладно, всё же та документация очень большая и я вот так напрямую найти не могу что мне делать с моей задачей.
Вот допустим я использовал hibernate и у меня получилось отражать данные в базе на мои классы отражающие таблички ну и я написал методы для вставки / обновления / удаления, как я теперь это всё должен запихнуть на сервер и на какой именно чтобы к нему мог клиент подключаться - вот что меня интересует и пример чего работающего мне нужен. В книгах то пишут о том какой хороший хибернейт и как его можно использовать, а вот как это всё дело на сервер сунуть я не видел чтобы где было написано.
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
07.04.2013, 17:56
Надо просто разбить на куски ваше приложение

например следующий путь

модель:

1. создать БД таблицы
2. намапить на них Entity классы
3. сконифигурить маппинг Entity на таблицы, написать на JPQL или HQL какие нибудь групповые операции селекты там или делеты в случае когда логика на стороне базы даст меньший трафик данных в объекты, всё остальное через работу с обьектами и критериями
4. протестировать юнитами с использованием ин мемори БД HSQLDB, H2 и тд

пример http://it.vaclav.kiev.ua/2012/... -spring-3/

контроллер:

создать контроллер реализующий бизнес логику
1. сделать интерфейсы
2. выполнить имплементацию
3. протестировать юнитами и моками от Entity и их методов
4. выполнить интеграционные тесты в связке с реальной БД
5. выполнить синтетическое нагрузочное тестирование

представление:

1. создать веб морду например на JSF на базе интерфейсов контроллера
вот сильно упрощённый пример без ORM и JSF https://netbeans.org/kb/docs/w... ng_ru.html
вот ещё http://habrahabr.ru/post/83860/

и потом собрать всё это в кучу и задеплоить на томкат в виде варника
вот вам и спринговое приложение для бедных ) без секьюрити, без валидации, без контроля транзакций через AOP, без кластеризации, с лок ином на хибер в случае HQL и hbm или без лок ина в случае JPA и persistence.xml

Или собрать это в ear и задеплоить на App Server jboss, weblogic, websphere ...
Всё вот и вся архитектура вкратце
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
07.04.2013, 18:11  [ТС]
Цитата Сообщение от mutagen Посмотреть сообщение
1. создать БД таблицы
2. намапить на них Entity классы
3. сконифигурить маппинг Entity на таблицы, написать на JPQL или HQL какие нибудь групповые операции селекты там или делеты в случае когда логика на стороне базы даст меньший трафик данных в объекты, всё остальное через работу с обьектами и критериями
4. протестировать юнитами с использованием ин мемори БД HSQLDB, H2 и тд
Ну это почти есть, этот шаг мне понятен. Я буду использовать хибернейт для маппинга на классы, с ним я разобрался и это работает.
Так что допустим примерный набор классов у меня уже есть которые я собираюсь отдавать с сервера, те те что моделируют саму бд.

Цитата Сообщение от mutagen Посмотреть сообщение
1. создать веб морду например на JSF на базе интерфейсов контроллера
вот сильно упрощённый пример без ORM и JSF https://netbeans.org/kb/docs/w... ng_ru.html
вот ещё http://habrahabr.ru/post/83860/
Вот этот шаг насчёт веб морды у меня в будущем, а сейчас у меня задача сделать чтобы была админка на SWING и которая будет через сокеты соединяться с сервером. Ну в общем-то интерфейс уже рабочий есть, нужно чуть-чуть подкрутить чтобы он рассчитывал на те классы что будет отдавать сервер, но это мне тоже понятно что и как.



Цитата Сообщение от mutagen Посмотреть сообщение
контроллер:
создать контроллер реализующий бизнес логику
1. сделать интерфейсы
2. выполнить имплементацию
3. протестировать юнитами и моками от Entity и их методов
4. выполнить интеграционные тесты в связке с реальной БД
5. выполнить синтетическое нагрузочное тестирование
Вообще не понял Какие инетрфейсы, какие имплементации, что делать и куда совать чтобы получился war которрый можно будет на сервер сунуть и какой вообще сервер мне надо Я так понимаю мне надо глофиш либо апач, но я без понятия как я это всё должен писать и где ещё в этом всём использовать спринг с его иньекциями.

Добавлено через 2 минуты
Хотя спринг я вижу куда я могу засунуть в контроллере - это создать xml'ник с инъекциями для dao у котрого может поменяться реализация, но это очень уж маленькое ему применение.
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
07.04.2013, 18:22
Цитата Сообщение от Gepar Посмотреть сообщение
какой вообще сервер мне надо
внимательнее читаем )))
Цитата Сообщение от mutagen Посмотреть сообщение
App Server jboss, weblogic, websphere
Цитата Сообщение от Gepar Посмотреть сообщение
чтобы была админка на SWING
Эта задача тоже не фонтан скажем, так как придётся юзать RMI, а это секьюрити проблем
http://static.springsource.org... oting.html

вообще если у вас будет апп сервак, то легче логику сделать на EJB и ремотом её дёргать, хотя там тоже секьюрити
https://www.google.com.ua/sear... ote+client

Цитата Сообщение от Gepar Посмотреть сообщение
о я без понятия как я это всё должен писать и где ещё в этом всём использовать спринг с его иньекциями.
спринг это не только иньекции ))) это целый фреймворк как и java EE, там и секьюрити свой и транзакции и ещё всякоге

ну а контроллер это ядро логики приложения, интерфейсы нужны чтобы дать их как jar клинту и чтобы он мог дёргать объявленые там методы

Добавлено через 1 минуту
Цитата Сообщение от Gepar Посмотреть сообщение
но это очень уж маленькое ему применение.
посмотрите на картиночку http://static.springsource.org... ew-modules
там спектр применения спринга
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
07.04.2013, 18:45  [ТС]
Цитата Сообщение от mutagen Посмотреть сообщение
Эта задача тоже не фонтан скажем, так как придётся юзать RMI
А зачем? Мне это объяснили как "сделать набор классов которыми бросаться и сделать из них jar, этот Jar подключить на сервере и клиенте и потом заставить сервер и клиент общаться по http", мне не сильно понятно как же сервер и клиент будут общаться и перебрасываться данными, но о rmi никто и слова не проронил, я так понял всё в этом плане должно быть чуть попроще. Ещё я не понял как клиент долен передавать серверу данные для подключения базе и как тот должен отдавать их хибернейту, сейчас у меня всё в конфиг файле прописано для хибернейта и как я могу до начала работы хибернейта указывать ему логин / пароль / порт я без понятия

Добавлено через 4 минуты
Цитата Сообщение от mutagen Посмотреть сообщение
ну а контроллер это ядро логики приложения, интерфейсы нужны чтобы дать их как jar клинту и чтобы он мог дёргать объявленые там методы
Ок, с интерфейсами тогда тоже понял. Не понял как оформить сервер который сможет отдавать на запросы клиента вот это всё что будет прописано в интерфейсах. Например есть класс отражающий таблицу
Person {id, name, birthdate}
есть у меня интерфейс PersonDAO { void addPerson(Person p), Person getPersonByID(Long id) }
и это есть и у клиента и у сервера. Как я могу создать сервер который сможет реагировать на такие запросы клиента (добавить персону / получить её по id) ? Вот именно как сделать вот этот сервер который отреагирует на запрос и отдаст данные и как клиент сможет сделать этот запрос? Логика того где сервер возьмёт данные меня не интересует, мне это понятно.
+ я так понимаю что с сервером должны работать только те у кого есть учётка в базе так что первый этап это наверное надо отдать серверу логин и пароль для конекта к базе для этого пользователя и он должен дать ответ там всё хорошо или плюнуть исключение что логин / пароль неправильный, или так не делается?

Вот эта вот логика передачи сообщений между клиентом и сервером меня интересует.
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
07.04.2013, 19:52
Цитата Сообщение от Gepar Посмотреть сообщение
Не понял как оформить сервер который сможет отдавать на запросы клиента
его можно задеплоить кучей способов экспоза
1. RMI
2. Java serialization via HTTP
3. JAX-RPC, JAX-WS, JAX-RS
4. JMS
и потом лепить под экспоз клиента
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
07.04.2013, 21:08  [ТС]
Цитата Сообщение от mutagen Посмотреть сообщение
2. Java serialization via HTTP
Ну вот это мне наверное надо, но всё равно как это сделать вопрос не пропал. Где можно посмотреть хоть элементарный пример где есть объект Foo и есть метод у сервера Foo getFoo(), ну и где клиент банально может сказать серверу "а дай ка мне Foo" и получить этот самый Foo. Я не могу найти в интернете ничего такого (ни простого, ни навороченного). Может не там ищу , подскажи пожалуйста как такое можно реализовать или ткни носом в подходящую статью. Только мне именно напрямую передавались сериализированные объекты, а не чтобы ответ отдавался в виде страници сформированной для веб.
Меня интересует вариант с сериализацией (он мне видиться самым простым и понятным да и так насколько я понял от меня это хотели в этой части задания).
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
07.04.2013, 23:13
http://www.javacodegeeks.com/2... -http.html
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
08.04.2013, 00:52  [ТС]
mutagen, вроде то что нужно, сил только уже нет сегодня это разобрать(да и терпения тоже, пришлось поработать с прологом, а после кодинга на нём меня вообще начинает всё раздаражать за что не возьмусь), большое спасибо, завтра после универа буду пробовать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.04.2013, 00:52
Помогаю со студенческими работами здесь

Используя функции категории Работа с базой данных в excel 2010, реализовать запрос к базе данных
Используя функции категории Работа с базой данных, реализовать запрос к базе данных: средняя закупочная цена для одного вида мороженого.

PHP и работа с базой данных (замена данных)
Добрый вечер. Начал ознакомление с бд. Создал ее + таблицу, написал добавление через форму, теперь пытаюсь написать изменение данных....

работа с базой данных
При помощи СУБД Acess создать таблицу из 2 полей ( номер и фамилии) в проекте дельфи создать форму для отображения данных из этой таблицы.

Работа с базой данных
Нужно написать программу, которая отправляет запрос в базу данных на сайте и проверяет есть ли в базе данных строка с аналогичным...

Работа с базой данных
Нужна помощь. В асп.нет я еще новичек и вот не понимаю такую вещь. Есть простая база данных. В ней одна таблица. В таблице следующие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru