Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > значения из базы выводим в таблицу в браузере. Как


Автор: underW 22.2.2010, 21:39
Суть задачи: есть у нас БД. Необходимо реализовать тонкий клиент, который будет выводить в браузер таблицу записей какой то таблицы из БД. Казалось бы - что может быть проще? Но это еще не все, необходимо так же обеспечить возможность редактирования таблицы - изменения ячеек, добавление новых строк, удаление существующих строк. Все эти изменения с таблицей которые мы делаем должны отображаться с таблицей в БД, то есть - удалили мы строку из таблички в браузере - сразу же пошел запрос к базе на на внесение изменений и в ней. Еще в чем проблема - так это в том, что интерфейс таблицы должен быть максимально хорошим. Вот например таким: http://www.extjs.com/examples/pages/grid/roweditor.html .

А сам мой вопрос состоит вот в чем: прошу помощи в проработке логики, как мне все это продумать? как бы эту задачу решали Вы? Мне не нужно, что бы кто то это сделал за меня, я просто прошу подсказки, как мне реализовать поставленную задачу?

Я вот наткнулся на фреймворк Ext GWT. По сути с его помощью можно очень легко реализовать интерфейс приложения. Ну это первое мое такое впечатление, возможно оно ошибочно. Но с Ext GWT я наталкиваюсь на то, что Ext GWT сам по себе переводит Java код в JavaScript. А на JavaScript как я смогу отправить запрос к базе? ну, никак. вот и все, приехали.

Во общем, ребят, помогите.

Автор: MaxPayneC 22.2.2010, 21:46
Если это полная постановка задачи, то
http://www.phpmyadmin.net/

Автор: underW 22.2.2010, 21:57
phpMyAdmin - это PHP, а не Java. К тому же нужно не найти инструмент - а сделать его самому.

Автор: MaxPayneC 22.2.2010, 22:28
А зачем делать инструмент самому, когда есть готовый?

Автор: Exai1e 22.2.2010, 23:07
MaxPayneC, видимо в целях самообучения smile

Автор: underW 22.2.2010, 23:33
сообщения от MaxPayneC больше смахивают на стеб. 

Автор: garbuz 23.2.2010, 01:09
underW, так в чем задача? Реализовать database client на java или написать приложение, обеспечивающее поддержку CRUD операций?

Автор: iluvatar 25.2.2010, 12:00
Если будет работа с таблицей в браузере (особенно если без кнопок, а в "реал-тайме"), то будет много JavaScript'a - от формирования соотв. запросов и до визуального удаления столбцов.
Если не требуется писать самому, то рекомендую jqGrid. 

В противном случае, давайте разбираться.
При помощи JS вы не сможете выполнить запрос к БД, но можете попросить того, кто сможет - сервлет.
Т.е. создаете сервлет, который выполняет какой-то запрос. Например, надо удалить какую-то запись - 
1. Создаете сервлет DeleteRecord, который берет из запроса один параметр "id", мепите его на адрес "/delete"
2. На клиенте при нажатии на какую-то кнопку/ссылку, формируете URL вида "/delete?id=3" и скармливаете его скажем аяксу

Если говорить о логике приложения, то я бы делал так - есть набор действий (добавить/удалить/изменить). 
Есть какой-то элемент контроля этих действий (кнопка/ссылка)
При касании к этому элементу формируется URL, отправляется запрос на сервер. В этот момент на клиенте висит картинка loading.
Запрос приходит на сервер, там обрабатывается и шлется в обратную простейший буленовский объект (при помощи xml, json)
Этот объект парсится на клиенте и если все прошло успешно - убираем loading и начинаем отрисовывать выполненное действие - т.е. визуально модифицируем таблицу (добавляем, удаляем, меняем строку)

Автор: underW 25.2.2010, 17:34
iluvatar, спасибо. Я как раз так все и продумал. И ваши слова в данном случае являются лишь подтверждением того, что я на правильном пути, спасибо Вам большое.

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

Автор: iluvatar 27.2.2010, 12:08
Если вопрос закрыт - отметьте тему как решенную

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)