首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

初学者 把mysql t_student表格的所有记录显示在JTable中

2012-12-17 
菜鸟求助把mysql t_student表格的所有记录显示在JTable中下面是查询部分的代码,是实现的是如果姓名和学号

菜鸟求助 把mysql t_student表格的所有记录显示在JTable中
下面是查询部分的代码,是实现的是;如果姓名和学号都为空,则点击确定按钮时,显示全部记录,
但是现在只能显示表中的第一条记录。


package Gui;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;

import util.DbManager;

public class SearchBy {

public void searchBy() {
final JFrame f = new JFrame("以何种方式查询?");

f.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 30));

JLabel l = new JLabel("请选择   以何种方式查询?并填写相关信息 ");
f.add(l);

JLabel l1 = new JLabel("学号:");
final JTextField t1 = new JTextField(5);
f.add(l1);
f.add(t1);
JLabel l2 = new JLabel("姓名:");
final JTextField t2 = new JTextField(5);
f.add(l2);
f.add(t2);

JButton bt = new JButton("确定");
f.add(bt);
bt.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub

DbManager db = new DbManager();

if (!t1.getText().isEmpty() && t2.getText().isEmpty()) {

String sql = "select * from t_student ";
sql = sql + "where id= '" + t1.getText() + "'";
ResultSet rs = db.executeQuery(sql);
try {
if (rs.next()) {
System.out.println("\n按学号查询!");
show(sql);
} else
JOptionPane.showMessageDialog(null, "学号为"
+ t1.getText() + "的数据不在数据库中!", null,
JOptionPane.ERROR_MESSAGE);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
if (!t2.getText().isEmpty() && t1.getText().isEmpty()) {

String sql = "select * from t_student ";
sql = sql + "where name= '" + t2.getText() + "'";
ResultSet rs = db.executeQuery(sql);
try {
if (rs.next()) {
System.out.println("\n按姓名查询!");
show(sql);
} else
JOptionPane.showMessageDialog(null, "姓名为"
+ t2.getText() + "的数据不在数据库中!", null,
JOptionPane.ERROR_MESSAGE);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

}
if (t1.getText().isEmpty() && t2.getText().isEmpty()) {
// System.out.println("\n请规范填写信息!");
String sql = "select * from t_student";
ResultSet rs = db.executeQuery(sql);
try {
if (rs.next()) {
show(sql);
}
} catch (SQLException e1) {


// TODO Auto-generated catch block
e1.printStackTrace();
}

}

db.close();

}
});

f.setSize(600, 180);
f.setBackground(Color.black);
f.setLocation(310, 210);

f.setVisible(true);

}

public void show(String sql) {

JFrame f = new JFrame("显示学生信息");

System.out.println(sql);

DbManager db = new DbManager();
ResultSet rs = db.executeQuery(sql);

Vector<String> v = new Vector<String>();
String sql1 = "select count(*) from t_student";

try {
if (rs.next()) {

String s = "               ";
v.add(s + rs.getString("id"));
v.add(s + rs.getString("name"));
v.add(s + rs.getString("gender"));
v.add(s + rs.getString("birth"));

}
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


db.close();
Vector row = new Vector();
row.add(v);



Vector<String> titles = new Vector<String>();
titles.add("学号");
titles.add("姓名");
titles.add("性别");
titles.add("生日");

JTable jl = new JTable(row, titles);
JScrollPane scr = new JScrollPane(jl);
f.add(scr);

f.setSize(500, 280);
f.setBackground(Color.black);
f.setLocation(390, 280);

f.setVisible(true);

}

}

 [align=left][/align]

[解决办法]
JTable的一些Demo
http://download.csdn.net/detail/qingqingzijinxin/686529#comment
[解决办法]
该回复于2012-12-10 08:54:58被管理员删除
[解决办法]
问题已解决。

热点排行