java-mysql数据检索问题

标签 java mysql jdbc

import java.sql.*;
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.*;
import java.awt.*;
import javax.swing.table.*;
import java.util.Vector;

public class SimpleTable extends JFrame {
public SimpleTable() {
super("Simple JTable Test");
setSize(350, 200);
//setLocation(250,300);
int ColCount;
int i;


try
{

 Class.forName("com.mysql.jdbc.Driver");
    Connection con=DriverManager.getConnection("jdbc:mysql://localhost/employ_details","root","");
    java.sql.Statement stmt= con.createStatement();
    ResultSet rs= stmt.executeQuery("select * from employe_details ");
 ResultSetMetaData meta =rs.getMetaData();
ColCount=meta.getColumnCount();
String s1 = null;
String s2 = null;
String s3 = null;
String s4 = null;
String s5 = null;
String s6 = null;
String s7 = null;
while (rs.next())
{

String [] record= new
String[ColCount];




for (i=0; i<ColCount; i++)
{

record[i]=rs.getString(i+1);
s1= rs.getString("Employee_ID");
s2= rs.getString("Employee_Name");
s3= rs.getString("Contact_Number");
s4 = rs.getString("Address");
s5 = rs.getString("Email");
s6 = rs.getString("dob");
s7 = rs.getString("Sex");
}
JTable jt = new JTable(new String[][]{{s1,s2,s3,s4,s5,s6,s7}}, new String[]{"Employee_ID","Employee_Name","Contact_Number","Address","Email","dob","Sex"});
JScrollPane jsp = new JScrollPane(jt);
getContentPane().add(jsp,BorderLayout.CENTER);
}}
catch (Exception e)
{
System.out.println("failure to connect " + e);
return; //(exit(1));
}
}
public static void main(String args[]) {
SimpleTable st = new SimpleTable();
st.setVisible(true);
}
}

它只显示数据库中的最后一行。 我如何将数据库中的所有行获取到 JTable ?

最佳答案

您的代码正在读取所有数据,但它不会存储所有数据,它仅保存最后一个循环执行的数据。

并从最后一行创建表格,以便它只显示最后一行。

尝试类似的事情

List<String> data = new ArrayList<String>();  

while (rs.next())
{

String [] record= new
String[ColCount];




for (i=0; i<ColCount; i++)
{

record[i]=rs.getString(i+1);
data.add(rs.getString("Employee_ID"));
data.add(rs.getString("Employee_Name"));
.
.
.
data.add(rs.getString("Sex"));
}
JTable jt = new JTable(new String[][]{data.toArray()}, new String[]{"Employee_ID","Employee_Name","Contact_Number","Address","Email","dob","Sex"});

关于java-mysql数据检索问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4265356/

相关文章:

java - 如何将oracle数据库中的值汇总到java中?

java - 如何通过 Controller 将2个域对象传递到1个jsp页面

java - 在接口(interface)中使用 Java 泛型来强制实现以实现类型作为参数的方法

java - 从 Java 访问 Kotlin 类对象

java - 删除java中的重复代码

mysql - 我怎样才能使这个查询更有效率?

mysql - 如何为许多用户的网站生成唯一代码

mysql - 使用条件从分区的 Parquet 数据创建表

jdbc - java.lang.ArrayIndexOutOfBoundsException : 7

java - 如何从 JDBC 检索序列元数据?