вставка всех наборов данных из таблицы базы данных в jTable Java - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь выбрать все наборы данных в jTable (после нажатия кнопки) из моей базы данных.

Я пробовал что-то вроде этого:

public Object getValueAt(int rowIndex, int columnIndex) throws SQLException { java.sql.Connection con; con = DriverManager.getConnection ("jdbc:mysql://localhost:3306/lessonstbl","root",""); String query =" SELECT * FROM lessons"; PreparedStatement statement = con.prepareStatement(query); ResultSet rs = statement.executeQuery(query);

     try {
            rs.absolute(rowIndex + 1);
            switch (columnIndex) {
                case 0: 
                    return rs.getString(1);
                case 1:
                    return rs.getString(2);
                case 2:
                    return rs.getInt(3);
                case 3:
                    return rs.getObject(4).toString();
                case 4:
                    return rs.getObject(5).toString();
                default:
                    return null;
            }
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());

.. но это не работает. Спасибо всем заранее

1 Ответ

0 голосов
/ 27 июня 2018
public Object getValueAt(int rowIndex, int columnIndex) throws SQLException {

Мне кажется, что вы пытаетесь переопределить getValueAt(...) метод TableModel. Это не сработает по нескольким причинам:

  1. Вы изменяете сигнатуру метода, добавляя throws SQLExeption, так что вы не отменяете реализацию TableModel по умолчанию, а вместо этого создаете новый метод, который не вызывается.

  2. Плохо делать SQL-запрос в методе getVaueAt (). Этот метод должен быть очень эффективным, так как он вызывается каждый раз, когда необходимо нарисовать ячейку в таблице.

Таким образом, правильное решение состоит в том, чтобы выполнить SQL-запрос при создании таблицы и загрузить все данные из SQL-запроса в TableModel в начале вашего класса. Это означает, что вам нужно будет перебрать все строки и столбцы ResultSet, чтобы добавить данные в TableModel.

Проверьте Table From DataBase Example в Таблица из базы данных . Или вы можете поискать на форуме другие примеры с ключевыми словами "ResultSet and JTable".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...