日期:2014-05-20  浏览次数:20856 次

菜鸟求助 把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) {