Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hiển thị bản ghi từ cơ sở dữ liệu MySQL bằng JTable trong Java

Dưới đây là một lớp sẽ hoàn thành những điều cơ bản về những gì bạn muốn làm khi đọc dữ liệu từ cơ sở dữ liệu MySQL vào JTable trong Java.

import java.awt.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;

public class TableFromMySqlDatabase extends JFrame
{
    public TableFromMySqlDatabase()
    {
        ArrayList columnNames = new ArrayList();
        ArrayList data = new ArrayList();

        //  Connect to an MySQL Database, run query, get result set
        String url = "jdbc:mysql://localhost:3306/yourdb";
        String userid = "root";
        String password = "sesame";
        String sql = "SELECT * FROM animals";

        // Java SE 7 has try-with-resources
        // This will ensure that the sql objects are closed when the program 
        // is finished with them
        try (Connection connection = DriverManager.getConnection( url, userid, password );
            Statement stmt = connection.createStatement();
            ResultSet rs = stmt.executeQuery( sql ))
        {
            ResultSetMetaData md = rs.getMetaData();
            int columns = md.getColumnCount();

            //  Get column names
            for (int i = 1; i <= columns; i++)
            {
                columnNames.add( md.getColumnName(i) );
            }

            //  Get row data
            while (rs.next())
            {
                ArrayList row = new ArrayList(columns);

                for (int i = 1; i <= columns; i++)
                {
                    row.add( rs.getObject(i) );
                }

                data.add( row );
            }
        }
        catch (SQLException e)
        {
            System.out.println( e.getMessage() );
        }

        // Create Vectors and copy over elements from ArrayLists to them
        // Vector is deprecated but I am using them in this example to keep 
        // things simple - the best practice would be to create a custom defined
        // class which inherits from the AbstractTableModel class
        Vector columnNamesVector = new Vector();
        Vector dataVector = new Vector();

        for (int i = 0; i < data.size(); i++)
        {
            ArrayList subArray = (ArrayList)data.get(i);
            Vector subVector = new Vector();
            for (int j = 0; j < subArray.size(); j++)
            {
                subVector.add(subArray.get(j));
            }
            dataVector.add(subVector);
        }

        for (int i = 0; i < columnNames.size(); i++ )
            columnNamesVector.add(columnNames.get(i));

        //  Create table with database data    
        JTable table = new JTable(dataVector, columnNamesVector)
        {
            public Class getColumnClass(int column)
            {
                for (int row = 0; row < getRowCount(); row++)
                {
                    Object o = getValueAt(row, column);

                    if (o != null)
                    {
                        return o.getClass();
                    }
                }

                return Object.class;
            }
        };

        JScrollPane scrollPane = new JScrollPane( table );
        getContentPane().add( scrollPane );

        JPanel buttonPanel = new JPanel();
        getContentPane().add( buttonPanel, BorderLayout.SOUTH );
    }

    public static void main(String[] args)
    {
        TableFromMySqlDatabase frame = new TableFromMySqlDatabase();
        frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
        frame.pack();
        frame.setVisible(true);
    }
}

Trong IDE NetBeans mà bạn đang sử dụng - bạn sẽ cần thêm Trình điều khiển JDBC của MySQL trong Thuộc tính dự án như tôi hiển thị ở đây:

Nếu không, mã sẽ tạo ra một SQLException nói rằng không thể tìm thấy trình điều khiển.

Bây giờ trong ví dụ của tôi, yourdb là tên của cơ sở dữ liệu và animals là tên của bảng mà tôi đang thực hiện truy vấn.

Đây là kết quả đầu ra:

Ghi chú chia tay:

Bạn đã nói rằng bạn là người mới và cần được trợ giúp để hiểu một số lớp và khái niệm cơ bản của Java. Tôi sẽ liệt kê một số ở đây, nhưng hãy nhớ rằng bạn luôn có thể duyệt qua các tài liệu trên trang của Oracle.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khóa bàn ở chế độ ngủ đông

  2. Thay đổi hành vi Session.delete () của SQLAlchemy

  3. Cách sắp xếp các kết quả của một truy vấn một cách ngẫu nhiên và chọn các hàng ngẫu nhiên. (MySQL)

  4. PHP &mySQL - ë được viết là Ã ​​«

  5. MySQL 5.7:chuyển đổi JSON_ARRAY đơn giản thành các hàng