Как отобразить все данные из базы данных в Jtable? - PullRequest
2 голосов
/ 17 ноября 2011

у нас была таблица данных в базе данных, и мы хотим получить и отобразить все данные в компоненте JTable с помощью IDE NetBeans.Все строки в базе данных должны отображаться в jtable.

Ответы [ 3 ]

3 голосов
/ 17 ноября 2011

В отсутствие какой-либо информации об особенностях этого, я бы предложил вам начать с учебника JDBC о том, как извлечь данные из базы данных. JTable учебник поможет вам отобразить это.

2 голосов
/ 17 ноября 2011

Также имейте в виду, что MVC - это название игры. Расширьте AbstractTableModel, чтобы создать модель, которая будет предоставлять данные для вашего JTable.

Вам потребуется реализовать следующие методы:

public int getRowCount()
public int getColumnCount() and 
public Object getValueAt(int rowIndex, int columnIndex)

и наконец установите вашу модель на JTable:

    myJTable.setModel(new MyModel());

Примерно так:

public class MyModel extends AbstractTableModel {

    private Connection con;
    private Statement stmt;
    private ResultSet rs;

    public MyModel () {

        try {
            Class.forName("com.mysql.jdbc.Driver");
            try {
                con = DriverManager.getConnection("jdbc:mysql://localhost:3306/databasename?useUnicode=true&characterEncoding=UTF-8",
                        "root", "password");
                stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
                rs = stmt.executeQuery("select * from tablename");

            } catch (SQLException e) {
                String msg = "MyModel(): Error Connecting to Database:\n"
                        + e.getMessage();
                System.out.println(msg);
            }
        } catch (ClassNotFoundException e) {
            String msg = "The com.mysql.jdbc.Driver is missing\n"
                    + "install and rerun the application";
            System.out.println(msg);
            System.exit(1);
        } finally {

        }
    }

    public int getRowCount() {
// count your rows and return 
        return count;
    }

    public int getColumnCount() {
// how many cols will you need goes here
        return 3;
    }

    public Object getValueAt(int rowIndex, int columnIndex) {
        try {
            rs.absolute(rowIndex + 1);
            switch (columnIndex) {
                case 0: 
                    return rs.getInt(1);
                case 1:
                    return rs.getString(2);
                case 2:
                    return rs.getString(6);
                default:
                    return null;
            }
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
        }
        return null;
    }
}
1 голос
/ 25 сентября 2014

Вы можете импортировать DbUtils и использовать его для импорта вашей базы данных в JTable, например:

Class.forName("com.mysql.jdbc.Driver");
Connection connectionToDB = (Connection)DriverManager.getConnection(hostname, user,pw);
PreparedStatement preparedStatement = connectionToDB.prepareStatement("SELECT * FROM Table;");
ResultSet resultSetForFullTable = preparedStatement.executeQuery();
dbTable.setModel(DbUtils.resultSetToTableModel(resultSetForFullTable));
Оператор импорта для DbUtils:
import net.proteanit.sql.DbUtils;
...