JTable中显示MySQL记录

创建一个项目>命名为MYSQL_data_display_JTable。
因为我们将连接到MySQL数据库,所以我们需要添加mysql-connector.jar以连接到MySQL数据库。我们将MySQL数据管理代码保存在my_mysal.java类中。在此类内部,有一个my_db_select()方法从MySQL表中收集记录。此方法my_db_select()将返回一个包含4行数据且每行具有5列的数组。因此,我们将首先声明一个二维数组。

String[][] data = new String[4][5]; // [rows][columns]

我们将连接到MySQL数据库,并在此处阅读有关如何连接到MySQL和执行查询的详细信息。我们将仅使用LIMIT查询来收集4行。

SELECT * FROM STUDENT LIMIT 0,4

使用此查询,我们将获得一个记录集,该记录集包含来自我们的学生表的前4行数据。
我们将遍历此记录集以将每一行数据存储在我们的二维数组数据中

        int i=0;

        while(rs.next())  {

         for(int j=0;j<5;j++) {

         //System.out.print(rs.getString(j+1));

         data[i][j]=rs.getString(j+1);

         }

         //System.out.println();

         i=i+1;

        }

一旦我们的数据数组中填充了row,我们就可以将其返回给我们的主调用方法。

return data;

在我们的JTable.java文件中,我们已经添加了一个JTable。在此处了解有关如何添加JTable的更多信息

现在,我们将创建一个类my_mysql.java 的对象来访问对象my_db_select()以获取数据。

String[] column= {"ID","Name","Class","Mark","Sex"};

my_mysql obj=new my_mysql(); // Object is created

 

//Collect the data using the object obj.my_db_select()  with column

jt1 = new javax.swing.JTable(obj.my_db_select(),column);

我们已经使用obj.my_db_select()给出了数据输入。这将运行my_mysql.java类的my_db_select()方法来获取包含4条记录的二维数组。

JTable.java

import java.awt.BorderLayout;

import java.awt.EventQueue;

 

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.JScrollPane;

 

public class JTable extends JFrame {

 

        private JPanel contentPane;

        private javax.swing.JTable jt1;

 

        /**

         * Launch the application.

         */

        public static void main(String[] args) {

               EventQueue.invokeLater(new Runnable() {

                       public void run() {

                               try {

                                      JTable frame = new JTable();

                                      frame.setVisible(true);

                               } catch (Exception e) {

                                      e.printStackTrace();

                               }

                       }

               });

        }

 

        /**

         * Create the frame.

         */

public JTable() {

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        setBounds(100, 100, 400, 305);

        contentPane = new JPanel();

        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

        setContentPane(contentPane);

        contentPane.setLayout(null);

              

        JScrollPane scrollPane = new JScrollPane();

        scrollPane.setBounds(10, 64, 366, 107);

        contentPane.add(scrollPane);

        //My_test obj=new My_test();// with test data

        my_mysql obj=new my_mysql();

              

        String[] column= {"ID","Name","Class","Mark","Sex"};

       

//jt1=new javax.swing.JTable(obj.my_test_select(),column);//test data

        jt1 = new javax.swing.JTable(obj.my_db_select(),column);

        scrollPane.setViewportView(jt1);

        }

}

my_mysql.java

import java.sql.*;

public class my_mysql {

 

public  String[][] my_db_select() {

String[][] data = new String[4][5]; // [rows][columns]

       

try{ 

        Class.forName("com.mysql.jdbc.Driver"); 

        Connection con=DriverManager.getConnection( 

        "jdbc:mysql://localhost:3306/my_tutorial","root","test"); 

        Statement st=con.createStatement(); 

       

  ResultSet rs=st.executeQuery("SELECT * FROM STUDENT LIMIT 0,4");

// Looping to store result in returning array data //

        int i=0;

        while(rs.next())  {

         for(int j=0;j<5;j++) {

         //System.out.print(rs.getString(j+1));

         data[i][j]=rs.getString(j+1);

         }

         //System.out.println();

         i=i+1;

        }

// Below lines to check data before returning. //   

/*            

 for (int x=0;x<data.length;x++) {

         for (int y=0;(data[x]!= null && y <data[x].length);y++) {

                System.out.print(data[x][y] + " ");

         }

         System.out.println();

 }

*/

con.close(); 

}catch(Exception e){ System.out.println(e);}

//

 

return data;

        }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值