Как заполнить таблицу класса BookTableModel данными полученными из базы MySql

0
Уважаемые форумчане, учиться программировать на Java стал не давно, по этому сразу возникли вопросы.
В интернете, нашел коротенькое видео в котором объясняется, о том как выводить в таблицу класса
BookTableModel
, некоторые данные из массива в цикле.
У меня все получилось, но я пошел дальше и мне потом захотелось выводить некоторую информацию из базы данных в подобную таблицу, здесь все и остановилось, никак не приложу ума как это сделать, помогите пожалуйста разобраться.

Имею 2 файла
1)MainTable.java
package maintable;

import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTable;


public class MainTable {

    
    public static void main(String[] args) {
        JFrame frame = new JFrame("FRAME");
        frame.setSize(new Dimension(600,400));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);
        frame.setLayout(new GridBagLayout());
        //SqlCon sq = new SqlCon();
        
        JButton addButton = new JButton("Добавить");
        JButton deleteButton = new JButton("Удалить");
        JButton clearButton = new JButton("Очистить");
        
        BookTableModel btm = new BookTableModel();
        JTable bookTable = new JTable(btm);
        JScrollPane bookTableScrollPage = new JScrollPane(bookTable);
        bookTableScrollPage.setPreferredSize(new Dimension(400, 400));
        
       String[]str = new String[3];
        str[0]="0";
        str[1]="Название книги";
        str[2]="345435";
        
        btm.addData(str);
        for(int i=0;i<100;i++)btm.addData(str);
        
        
        frame.add(bookTableScrollPage,new GridBagConstraints(0,0,3,1,1,1,GridBagConstraints.NORTH,GridBagConstraints.BOTH,new Insets(1,1,1,1),0,0));
        frame.setVisible(true);
        frame.pack();
        
         frame.add(addButton,new GridBagConstraints(0,1,1,1,1,1,GridBagConstraints.NORTH,GridBagConstraints.HORIZONTAL,new Insets(1,1,1,1),0,0));
        frame.setVisible(true);
        frame.pack();
        
         frame.add(deleteButton,new GridBagConstraints(1,1,1,1,1,1,GridBagConstraints.NORTH,GridBagConstraints.HORIZONTAL,new Insets(1,1,1,1),0,0));
        frame.setVisible(true);
        frame.pack();
        
         frame.add(clearButton,new GridBagConstraints(2,1,1,1,1,1,GridBagConstraints.NORTH,GridBagConstraints.HORIZONTAL,new Insets(1,1,1,1),0,0));
        frame.setVisible(true);
        frame.pack();
    }

    
}


И второй
2) BookTableModel.java
package maintable;

import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;


public class BookTableModel extends AbstractTableModel{

    private static final long serialVersionUID = 3883320516766381209L;
    private int columnCount = 3;
    private ArrayList<String[]> dataArrayList;
    
    public BookTableModel(){
        dataArrayList = new ArrayList<String[]>();
        for(int i=0;i<dataArrayList.size();i++){
        dataArrayList.add(new String[getColumnCount()]);
        }
        
    }
    @Override
    public int getRowCount() {
        return dataArrayList.size();
    }

    @Override
    public int getColumnCount() {
        return columnCount;
    }
    
    @Override
    public String getColumnName(int columnIndex){
        switch(columnIndex){
            case 0: return"#id";
            case 1: return"title";
            case 2: return"isbn";
           
        }
        return "";
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        String []rows = dataArrayList.get(rowIndex);
        return rows[columnIndex];
    }
    
        public void addData(String[]row){
        String[]rowTable = new String[getColumnCount()];
        rowTable = row;
        dataArrayList.add(rowTable);
    }
}


С помощью файла MainTable.java создаётся фрейм, в него встраивается таблица и внизу три кнопки, с помощью которых я планирую потом удалять данные из таблицы или добавлять, но это потом, сейчас моей основной задачей является выведение информации из базы данных в эту таблицу.Как вы можете наблюдать, создаётся таблица из 3х колонок в которую из массива str, выводятся данные в цикле, которые повторяются 100 раз. Мне нужно за место этих слов из массива str, вывести данные из базы MySql, как это сделать?

Создал третий файл в котором прописал подключение к базе
package maintable;

import java.sql.Array;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

//import com.mysql.jdbc.Driver;

public class SqlCon extends BookTableModel{
    
    
	BookTableModel btab = new BookTableModel();
        
        
    public String base(){
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
//			new com.mysql.jdbc.Driver();
			Class.forName("com.mysql.jdbc.Driver").newInstance();
// conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdatabase?user=testuser&password=testpassword");
			String connectionUrl = "jdbc:mysql://localhost:3306/test";
			String connectionUser = "root";
			String connectionPassword = "";
			conn = DriverManager.getConnection(connectionUrl, connectionUser, connectionPassword);
			stmt = conn.createStatement();
			rs = stmt.executeQuery("SELECT * FROM books");
			while (rs.next()) {
				String id = rs.getString("id");
				String name = rs.getString("name");
				String author = rs.getString("author");
				System.out.println("ID: " + id + ", name: " + name+ ", author: " + author);
                                
                               
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); }
			try { if (stmt != null) stmt.close(); } catch (SQLException e) { e.printStackTrace(); }
			try { if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); }
		}
                return "";
	}
}


В базе test имеется таблица с полями id,name,author, в которой имеются слова, эти слова я хочу выводить в таблицу BookTableModel btm, как мне это сделать, будьте так добры объясните мне пожалуйста.
Заранее спасибо!
Модераторы: Нет
Сейчас эту тему просматривают: Нет