创建一个项目>命名为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;
}
}