Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 3
Регистрация: 22.10.2013
Сообщений: 41
1

Вывод данных в JTable из Mysql

22.10.2013, 12:37. Показов 5428. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Я только начал изучать java так что не судите строго.
Во общем у меня вопрос по JTable. Задача такая: нужно вывести данные из таблицы Mysql в компонент JTable.
Что я сделал:
1. Создал формочку, поместил туда компонент JTable.
2. Подключился к базе Mysql и считал данные с таблицы. Данные находятся в объекте ResultSet. Теперь эти данные нужно загрузить в таблицу.
На сколько я понял правильный вариант это рабоче через "Модель".
3. Создал класс наследовался от класса AbstractTableModel
В конструкторе класса сказал принимать объект типа ResultSet. И все дальше ступор, не знаю как быть дальше.
На сколько я понял для вывода данных нужно представить данные в виде массива типа Object[][] data. А после этого в методе getValueAt делать так:
Java
1
2
3
4
    public Object getValueAt(int rowIndex, int columnIndex) {
        // TODO Auto-generated method stub
        return data[rowIndex][columnIndex];
    }
А как представить ResultSet в виде массива Object[][] data, а модет эть другая реализация этого.
Ниже представлен сам код:
MainTb.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package jtb;
 
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.event.TableModelListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;
import javax.swing.JTable;
 
 
 
public class MainTb extends JFrame {
 
    private JPanel contentPane;
    private JTable table;
    private static ResultSet rs;
    private static MyTableModel model;
 
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        Connection connection;
        try {
            String driverName = "com.mysql.jdbc.Driver"; 
            Class.forName(driverName);
            String serverName = "localhost";
            String mydatabase = "world";
            String url = "jdbc:mysql://" + serverName + "/" + mydatabase;
            String username = "root";
            String password = "12345678";
            
            connection = DriverManager.getConnection(url, username, password);
            
            String query = "Select * FROM city";
            Statement stmt = connection.createStatement();
            rs = stmt.executeQuery(query);
            model = new MyTableModel(rs);
            connection.close();
        }
            catch (ClassNotFoundException e) {
                e.printStackTrace();
                // Could not find the database driver
            } catch (SQLException e) {
                e.printStackTrace();
                // Could not connect to the database
            }
 
        
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    MainTb frame = new MainTb();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
 
    /**
     * Create the frame.
     */
    public MainTb() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);
        table = new JTable(model);
        contentPane.add(table, BorderLayout.CENTER);
    }
 
}
Вот сама модель MyTableModel.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package jtb;
 
import java.sql.ResultSet;
import javax.swing.table.AbstractTableModel;
 
public class MyTableModel extends AbstractTableModel{
 
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private ResultSet rs;
    public MyTableModel(ResultSet rs){
        this.rs = rs;
    }
    @Override
    public int getRowCount() {
        // TODO Auto-generated method stub
        return 0;
    }
 
    @Override
    public int getColumnCount() {
        // TODO Auto-generated method stub
        return 0;
    }
 
    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        // TODO Auto-generated method stub
        return null;
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2013, 12:37
Ответы с готовыми решениями:

Вывод информации из БД MySQL в JTable
Здравствуйте! Есть база данных MySQL. Мне необходимо при нажатии на кнопку JButton вывести...

Вывод информации из БД MySQL в JTable
Здравствуйте! Есть база данных MySQL. Мне необходимо при нажатии на кнопку JButton вывести...

Корректный вывод данных в JTable
Здравствуйте, уважаемые форумчане. Мне нужно вывести в таблицу достаточно большой массив данных,...

Вывод данных связанной таблицы в JTable
Всем привет! У меня есть таблица Продукты, в ней есть поле Ед. измерения которая является внешним...

0
22.10.2013, 12:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2013, 12:37
Помогаю со студенческими работами здесь

Ajax отправка данных из формы в базу mysql и вывод из базы mysql
$(function() { $('#chat_submit').click(function(e) { e.preventDefault(); ...

Вывод данных из базы данных MySQL в PHP в виде дерева.
У нас в сети решили сделать портал-базу по рефератам. Все я сделал остались две траблы, про первую...

Вывод данных из mysql. Максимум 10 данных на страницу!
Имеется ниже код, который выводить данные из mysql в таблицу (пользователю) в личный кабинет!...

Вывод необходимых данных из базы данных MySQL
Всем привет. Подскажите как проще всего реализовать вывод необходимых данных из бд, проблема в...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru