如何将数据库mysql中的数据全部显示到java做的表格上?求高人解救!
package xiaomo;还有其他代码,代码无误,只是小弟不知如何将数据库的数据全部显示出来,事实上,它只显示了所有的最后一条!!!
import java.sql.*;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import com.mysql.jdbc.PreparedStatement;
public class MessageFace extends JFrame{
static Connection connection;
static java.sql.PreparedStatement sql;
static ResultSet res;
private String ID;
private String Name;
private String Mobilephone;
private String Company;
private String QQNumber;
public void MessageFace(String title){
//文本框的编辑
JTextField jt = new JTextField("Please enter static words to search...");
jt.setBackground(Color.pink);
//表格的设计
//JTable 的动态更新
String driver = "com.mysql.jdbc.Driver"; //驱动程序名
String url = "jdbc:mysql://127.0.0.1:3306/xiaomo?useUnicode=true&characterEncoding=gbk";
//数据库亦可换成xiaomonew
String user = "root";
String password = "";
try{
Connection connection = DriverManager.getConnection(url, user, password);
sql=connection.prepareStatement("select * from xiaomotable");
res=sql.executeQuery();
while(res.next()){
String ID=res.getString(1);
String Name=res.getString("Name");
String Mobilephone=res.getString("Mobilephone");
String Company=res.getString("Company");
String QQNumber=res.getString("QQNumber");
System.out.println("ID是"+ID);
System.out.println("姓名是:"+Name);
System.out.println("电话是:"+Mobilephone);
System.out.println("公司是:"+Company);
System.out.println("QQ号码是: "+QQNumber);
this.ID=ID;
this.Name=Name;
this.Mobilephone=Mobilephone;
this.Company=Company;
this.QQNumber=QQNumber;
}
}catch(Exception e){
e.printStackTrace();
}
String[] columnNames={"ID","Name","MobilePhone","Company","QQ number"};
String[][] tableValues={{ID,Name,Mobilephone,Company,QQNumber}};
JTable table = new JTable(tableValues, columnNames);
JScrollPane scrollPane = new JScrollPane(table);
//对窗体的预处理
JFrame jf = new JFrame(title);
Container container = jf.getContentPane();
container.setBackground(Color.green);
// jf.setLayout(null);
jf.setBounds(900, 100, 415, 472); //(x,y,width,weight)
jf.setVisible(true);
// jf.setResizable(false); //去掉最大化
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//将面板划分为three个容器
JPanel jp1 = new JPanel(new GridLayout(1,1));
JPanel jp2 = new JPanel(new GridLayout(1,5,5,5));
JPanel jp3 = new JPanel(new GridLayout(1,1));
//组件所在副容器
//jp2的编辑
jp2.setBackground(Color.darkGray);
JButton jb1 = new JButton("Build");
jb1.setBackground(Color.lightGray);
JButton jb2 = new JButton("Edit");
JButton jb3 = new JButton("Delete");
JButton jb4 = new JButton("Search");
JButton jb5 = new JButton("Back");
jb1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new BuildButton(MessageFace.this,"").setVisible(true);
}
});
/*
* 在设计代码时,要注重 程序的先后顺序,语言逻辑 否则就会出现启动程序时不显示,
* 拖动一下才会显示的怪现象,其实这是逻辑的问题!!!
*/
jp1.add(scrollPane,BorderLayout.CENTER);
jp2.add(jb1);
jp2.add(jb2);
jp2.add(jb3);
jp2.add(jb4);
jp2.add(jb5);
jp3.add(jt);
container.add(jp3,BorderLayout.NORTH);
container.add(jp1,BorderLayout.CENTER);
container.add(jp2,BorderLayout.SOUTH);
}
public static void main(String[] args){
// TODO Auto-generated method stub
MessageFace test = new MessageFace();
test.MessageFace("People");
}
}
运行后的界面如下:
mysql java eclipse --------------------编程问答-------------------- 上面的关键代码:
String[] columnNames={"ID","Name","MobilePhone","Company","QQ number"};
String[][] tableValues={{ID,Name,Mobilephone,Company,QQNumber}};
JTable table = new JTable(tableValues, columnNames);
JScrollPane scrollPane = new JScrollPane(table);
这是制作表格的关键代码,请高人帮小弟讲出如何能使数据库中的所有数据都显示到窗体中的表格里!!!
运行结果为: --------------------编程问答-------------------- 绑定model
--------------------编程问答-------------------- 用System.out检查后发现在while(res.next()){...}
循环后只有在循环到最后一条才跳出,执行余下的,类下的成员变量定义的ID,Name...只被赋值了一次
补充:Java , Eclipse