Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: GUI и Java FX приложения > Заполнить таблицу содержимым из БД |
Автор: olexander 9.5.2008, 21:33 | ||||
Самостоятельно во многом разобрался. Пока не получается по результатам запроса к SQL (MySQL) серверу получить в GUI табличку с содержимым таблицы на сервере. Добавлять, изменять данные на реальном сервере уже научился. Создать таблицу получилось. Не смог прикрутить результаты запроса SELECT * FROM `test` к таблице в GUI ... - к серверу подключаюсь:
По примерам что нашёл подключиться не удалось ... 2 том Хорстмана с. 460, пример 6.11 ResultSetTable не пошёл ... Похоже что не совсем правильно подключаюсь к серверу ... Так не получается ... Где в этом случае правильно ложить файл "database.properties".
Ещё не совсем все гладко с локализацией, но это с понедельника. Нужен протенький пример заполнения таблицы по результатам запроса. в идеале без файла "database.properties". Заканчивается время на эксперименты. Заранее спасибо за помощь. |
Автор: Старовъръ 10.5.2008, 09:51 |
Скажи какие исключения выбрасываются и где, что конкретно не выходит, что надо. А то фразы "пока не получается что-то" или "похоже что-то здесь неправильно" не особо раскрывают смысл проблемы. |
Автор: olexander 11.5.2008, 19:08 |
Соединиться у меня получилось. Получилось добавить / изменить данные в БД. Сервер в сети и работает нормально. Не получилось запихнуть результаты простейшего запроса в табличку. |
Автор: v2v 11.5.2008, 19:15 | ||
а что получилось? данные запроса вывести в консоль получилось? посмотреть что данные вернулись корректно получилось? вот тривиальный пример таблички. такое удавалось вывести и увидеть таблицу?
|
Автор: Старовъръ 11.5.2008, 19:30 | ||||
Вот модель таблицы:
|
Автор: olexander 20.5.2008, 21:38 |
Да, подключиться к серверу реально получилось, по примеру создать запрос (добавление данных) тоже. v2v, Третий столбец - и должен в результате быть заполнен квадратиками? Старовъръ, А можно хотя-бы в двух словах что с этой моделью таблицы нужно делать ... Что-то я совсем не вкурю что куда ... :( ... и зачем ... |
Автор: Старовъръ 20.5.2008, 23:04 | ||
Да там вроде уже все ясно. Делаешь таблицу, в конструктор которой передаешь вышеуказанную модель. Добавляешь таблицу на панель. Создаешь соединение с БД и делаешь запрос на выборку(select). Передаешь его результаты в модель посредством метода setDataSource(). Модель сама все обновляет и делает.
|
Автор: anti_snayper 25.5.2008, 16:16 |
Попутный вопрос: извлекаю из базы данные запросом "SELECT Groups.Caption, Groups.Data, Groups.Group_id FROM Groups", как сделать чтобы в таблице отображались только первые 2 поля? |
Автор: Старовъръ 25.5.2008, 16:24 | ||||
"SELECT Groups.Caption, Groups.Data FROM Groups" ![]() Или в модели поставить
еще лучше:
|
Автор: nitzshe 27.5.2008, 01:38 | ||||
Я тоже наткнулся на этот код в этой же книге, который оказался нерабочим. Что для новичков как я наверно негативно. В общем чтобы в этой теме находили нуждающиеся рабочий код с использованием файла свойств зарегистрировался и постю. Порывшись в исходниках нашел у себя рабочий код приложения использования файла свойств, вот ниже привожу его: То что в файле db.properties: db.connection.protocol=jdbc:mysql: db.connection.host=127.0.0.1 db.connection.port=3306 db.connection.dbnametest=test db.connection.dbname=test db.connection.driver=com.mysql.jdbc.Driver db.connection.username=root db.connection.password=admin Как пользовать:
Код не идеальный, но рабочий, возможно стоило включить бок finally где закрыть все, но для примера должен подойти. |
Автор: olexander 2.7.2008, 22:21 | ||
Всё ещё в свободную минутку пытаюсь расковырять задачку ... вопрос по примеру: Старовъръ
<String>, <Class> - Это "уточняется" тип массива/ов или "здесь подставь своё"? |
Автор: v2v 2.7.2008, 22:25 |
тип элементов массива. |
Автор: olexander 13.7.2008, 15:34 | ||
Сейчас застрял на ошибке ошибку которой понять не получается: ![]()
файл MyDatabaseTableModel.java лежит в одном каталоге с остальными файлами проекта. Регистр вызова и название вро-де должно совпадать, ибо спецом переносил через copy-paste. Класс DatabaseTableModel на всяк случай переименовал что-бы исключить ошибку совпадения с существующим классом в MyDatabaseTableModel, но ошибка не пропала ... снимок экрана и файлы из каталога src додаю в архиве ... На данный момент пытаюсь методом тыка слепил на примере InternalFrameDemo из книги инерфейс, состоящий из основного, окна, в котором меню (InternalFrameDemo.java). Пункты меню вызывают отдельные окошки. Сейчас (если не учитывать ошибку) работает изменение строки в БД (MyInternalTableFrame.java) (закоментарено добавление) и вывод таблицы из текста кода (MyInternalTableFrame_1.java). Если избавиться из таблицы то должно ещё в идеале показывать содержимое таблицы на сервере (MyInternalTableFrame_2.java). Файлы MyDatabaseTableModel.java и DatabaseTableModel.java - из примера выше ... |
Автор: olexander 17.7.2008, 10:26 |
Что можно попробовать? Проверить ... |
Автор: Старовъръ 17.7.2008, 10:35 |
Так у тебя же все классы находятся в пакете package, а MyDatabaseTableModel - в дефолтном. |
Автор: olexander 18.7.2008, 09:30 |
Старовъръ, А что (как) подправить/изменить что-бы и класс MyDatabaseTableModel был со всеми? |
Автор: olexander 20.7.2008, 10:19 | ||
Если в начало файла "MyDatabaseTableModel" добавляю "package components;" аналогично остальным файлам, то ошибка меняется на другую:
|
Автор: Старовъръ 20.7.2008, 11:33 |
Вот исправляй теперь эти ошибки. Там все четко написано: из-за того, что не ловишь исключение в try...catch. Думать, думать и еще раз думать ![]() |
Автор: olexander 20.7.2008, 13:04 | ||
ААА !!! пошло !!! ![]() ![]() СПАСИБО Старовъръ а то я всё не мог понять чего он от меня хочет ... получается на данный момент итоговый вид после внесённых изменений в файл MyInternalTableFrame_2 получился вследующим:
|
Автор: olexander 21.7.2008, 13:30 |
вопрос: Как проще всего согласовать кодировку на сервере БД и которая вводится в клиент под win? Какую взять кодировку что-бы меньше было перекодировываний? Пробовал на сервере создать базу и таблицу под UTF8, но не помогло ... Кирилица всё равно вопросами ... С латиницей проблем нету ... ![]() |
Автор: Ulysses4j 21.7.2008, 14:23 |
Java по-умолчанию работает с UTF-16, так что базу лучше в ней создать попробовать. И где вы увидели вопросы: если в консоли, то это может означать, что просто консоль не поддерживает Unicode. Можно попорбовать прочитать из базы и записать в файл, а потом открыть в редакторе, который его поддерживает, и посмотреть. |
Автор: olexander 22.7.2008, 12:26 |
и в базе данных и в результатах что показывает "моя табличка" ... А какая кодировка когда клиент вводит кирилицу текст под win без кодировок? Подумал создать таблицу под эту кодировку ... Только что ЭТО за кодировка? Сам пока ХЗ ... |
Автор: olexander 26.7.2008, 23:59 | ||||
В общем удалось ... если в конец строки установки соединения после пароля и перед кавычкой добавить ещё и :
и перевести таблицу БД на KOI8_R то кирилица будет работать на ура. В итоге строка из 1-го сообщения получается во что-то подобное:
PS: вопрос перед тем как закрыть тему: Как лучше организовать редактирование данных в БД (выбор что редактировать ... ) |
Автор: olexander 27.7.2008, 01:22 |
Если использовать UTF8, то и с украинскими символами глюка не будет ;) |