查询时,text为空的时候,table有数据,text有数据的时候,table没数据。什么原因?给个好答案吧。下面是代码。---------------------------------------- test.java--------------------
import java.sql.*;
import java.util.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;public class test extends JFrame { private JPanel jContentPane = null;
private JLabel jLabel = null;
private JTextField jTextFieldBook = null;
private JLabel jLabel1 = null;
private JTextField jTextFieldAuthor = null;
private JLabel jLabel2 = null;
private JTextField jTextFieldPree = null;
private JButton jButton = null;
private JScrollPane jScrollPane = null;
private JTable jTable = null;
private ConnDB conn = new ConnDB();
DefaultTableModel model = new DefaultTableModel();
Vector tempvector = new Vector();
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getJTextFieldBook() {
if (jTextFieldBook == null) {
jTextFieldBook = new JTextField();
jTextFieldBook.setBounds(new java.awt.Rectangle(56,15,115,33));
}
return jTextFieldBook;
} /**
* This method initializes jTextField1
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField1() {
if (jTextFieldAuthor == null) {
jTextFieldAuthor = new JTextField();
jTextFieldAuthor.setBounds(new java.awt.Rectangle(220,15,113,33));
}
return jTextFieldAuthor;
} /**
* This method initializes jTextField2
*
* @return javax.swing.JTextField
*/
private JTextField getJTextFieldPree() {
if (jTextFieldPree == null) {
jTextFieldPree = new JTextField();
jTextFieldPree.setBounds(new java.awt.Rectangle(397,15,87,33));
}
return jTextFieldPree;
} /**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new java.awt.Rectangle(497,14,60,31));
jButton.setText("查询");
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
getJTable();
}
});
}
return jButton;
} /**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new java.awt.Rectangle(0,56,593,314));
jScrollPane.setViewportView(getJTable());
}
return jScrollPane;
} /**
* This method initializes jTable
*
* @return javax.swing.JTable
*/
private JTable getJTable() {
if (jTable == null) {
jTable = new JTable(model);
}
Collection JTable=new ArrayList();
String sql;
boolean isFirst=true;
sql="SELECT * FROM books ";
if(!jTextFieldBook.getText().equals("")){
sql=sql+"WHERE Bookname='"+jTextFieldBook.getText().trim()+"'";
isFirst=false;
}
if(!jTextFieldAuthor.getText().equals("")){
if(isFirst){
sql=sql+"WHERE Author='"+jTextFieldAuthor.getText().trim()+"'";
isFirst=false;
}
else{
sql=sql+"AND Author='"+jTextFieldAuthor.getText().trim()+"'";
}
}
if(!jTextFieldPree.getText().equals("")){
if(isFirst){
sql=sql+"WHERE Press='"+jTextFieldPree.getText().trim()+"'";
isFirst=false;
}
else{
sql=sql+"AND Press='"+jTextFieldPree.getText().trim()+"'";
}
}
System.out.println("图书查询时的SQL:"+sql);
ResultSet rs=conn.executeQuery(sql);
for (int n = model.getRowCount() - 1; n >= 0; n--)
model.removeRow(n);
try{
while (rs.next()){
tempvector = new Vector();
tempvector.add(rs.getString("Bookname"));
tempvector.add(rs.getString("Press"));
tempvector.add(rs.getString("Author"));
tempvector.add(rs.getString("Address"));
tempvector.add(rs.getString("Pressdate"));
tempvector.add(rs.getString("Price"));
tempvector.add(rs.getString("Comment"));
model.addRow(tempvector);
}
}catch (SQLException ex){
}
return jTable;
} /**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
test application = new test();
application.show();
} /**
* This is the default constructor
*/
public test() {
super();
initialize();
} /**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(600, 400);
this.setContentPane(getJContentPane());
this.setTitle("查询TEST");
model.addColumn("书名");
model.addColumn("出版社");
model.addColumn("作者");
model.addColumn("地址");
model.addColumn("出版日期");
model.addColumn("定价");
model.addColumn("评论");
} /**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jLabel2 = new JLabel();
jLabel2.setBounds(new java.awt.Rectangle(340,14,55,32));
jLabel2.setText("出版社");
jLabel1 = new JLabel();
jLabel1.setBounds(new java.awt.Rectangle(176,14,40,31));
jLabel1.setText("作者");
jLabel = new JLabel();
jLabel.setBounds(new java.awt.Rectangle(15,14,40,32));
jLabel.setText("书名");
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(jLabel, null);
jContentPane.add(getJTextFieldBook(), null);
jContentPane.add(jLabel1, null);
jContentPane.add(getJTextField1(), null);
jContentPane.add(jLabel2, null);
jContentPane.add(getJTextFieldPree(), null);
jContentPane.add(getJButton(), null);
jContentPane.add(getJScrollPane(), null);
}
return jContentPane;
}}
import java.sql.*;
import java.util.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;public class test extends JFrame { private JPanel jContentPane = null;
private JLabel jLabel = null;
private JTextField jTextFieldBook = null;
private JLabel jLabel1 = null;
private JTextField jTextFieldAuthor = null;
private JLabel jLabel2 = null;
private JTextField jTextFieldPree = null;
private JButton jButton = null;
private JScrollPane jScrollPane = null;
private JTable jTable = null;
private ConnDB conn = new ConnDB();
DefaultTableModel model = new DefaultTableModel();
Vector tempvector = new Vector();
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getJTextFieldBook() {
if (jTextFieldBook == null) {
jTextFieldBook = new JTextField();
jTextFieldBook.setBounds(new java.awt.Rectangle(56,15,115,33));
}
return jTextFieldBook;
} /**
* This method initializes jTextField1
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField1() {
if (jTextFieldAuthor == null) {
jTextFieldAuthor = new JTextField();
jTextFieldAuthor.setBounds(new java.awt.Rectangle(220,15,113,33));
}
return jTextFieldAuthor;
} /**
* This method initializes jTextField2
*
* @return javax.swing.JTextField
*/
private JTextField getJTextFieldPree() {
if (jTextFieldPree == null) {
jTextFieldPree = new JTextField();
jTextFieldPree.setBounds(new java.awt.Rectangle(397,15,87,33));
}
return jTextFieldPree;
} /**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new java.awt.Rectangle(497,14,60,31));
jButton.setText("查询");
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
getJTable();
}
});
}
return jButton;
} /**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new java.awt.Rectangle(0,56,593,314));
jScrollPane.setViewportView(getJTable());
}
return jScrollPane;
} /**
* This method initializes jTable
*
* @return javax.swing.JTable
*/
private JTable getJTable() {
if (jTable == null) {
jTable = new JTable(model);
}
Collection JTable=new ArrayList();
String sql;
boolean isFirst=true;
sql="SELECT * FROM books ";
if(!jTextFieldBook.getText().equals("")){
sql=sql+"WHERE Bookname='"+jTextFieldBook.getText().trim()+"'";
isFirst=false;
}
if(!jTextFieldAuthor.getText().equals("")){
if(isFirst){
sql=sql+"WHERE Author='"+jTextFieldAuthor.getText().trim()+"'";
isFirst=false;
}
else{
sql=sql+"AND Author='"+jTextFieldAuthor.getText().trim()+"'";
}
}
if(!jTextFieldPree.getText().equals("")){
if(isFirst){
sql=sql+"WHERE Press='"+jTextFieldPree.getText().trim()+"'";
isFirst=false;
}
else{
sql=sql+"AND Press='"+jTextFieldPree.getText().trim()+"'";
}
}
System.out.println("图书查询时的SQL:"+sql);
ResultSet rs=conn.executeQuery(sql);
for (int n = model.getRowCount() - 1; n >= 0; n--)
model.removeRow(n);
try{
while (rs.next()){
tempvector = new Vector();
tempvector.add(rs.getString("Bookname"));
tempvector.add(rs.getString("Press"));
tempvector.add(rs.getString("Author"));
tempvector.add(rs.getString("Address"));
tempvector.add(rs.getString("Pressdate"));
tempvector.add(rs.getString("Price"));
tempvector.add(rs.getString("Comment"));
model.addRow(tempvector);
}
}catch (SQLException ex){
}
return jTable;
} /**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
test application = new test();
application.show();
} /**
* This is the default constructor
*/
public test() {
super();
initialize();
} /**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(600, 400);
this.setContentPane(getJContentPane());
this.setTitle("查询TEST");
model.addColumn("书名");
model.addColumn("出版社");
model.addColumn("作者");
model.addColumn("地址");
model.addColumn("出版日期");
model.addColumn("定价");
model.addColumn("评论");
} /**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jLabel2 = new JLabel();
jLabel2.setBounds(new java.awt.Rectangle(340,14,55,32));
jLabel2.setText("出版社");
jLabel1 = new JLabel();
jLabel1.setBounds(new java.awt.Rectangle(176,14,40,31));
jLabel1.setText("作者");
jLabel = new JLabel();
jLabel.setBounds(new java.awt.Rectangle(15,14,40,32));
jLabel.setText("书名");
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(jLabel, null);
jContentPane.add(getJTextFieldBook(), null);
jContentPane.add(jLabel1, null);
jContentPane.add(getJTextField1(), null);
jContentPane.add(jLabel2, null);
jContentPane.add(getJTextFieldPree(), null);
jContentPane.add(getJButton(), null);
jContentPane.add(getJScrollPane(), null);
}
return jContentPane;
}}
----ConnDB.java----
import java.sql.*;
public class ConnDB {
public Connection conn=null;
public ResultSet rs=null;
public Statement stmt=null;
private String Driver= "com.mysql.jdbc.Driver";
private String url= "jdbc:mysql://localhost:3306/bb?user=root&password=imo007&useUnicode=true";
public ConnDB() { //构造方法
}
public Connection getConnection() {
try {
Class.forName(Driver);
conn = DriverManager.getConnection(url);
} catch (Exception e) {
System.out.println(e.getMessage());
}
if (conn == null) {
System.out.println("没有获取到数据库连接");
}
return conn;
}
/*
*功能:执行查询语句
*/
public ResultSet executeQuery(String sql) {
try {
conn = getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
}
catch (SQLException ex) {
System.err.println(ex.getMessage());
}
return rs;
}/*
*功能:执行更新操作
*/
public int executeUpdate(String sql) {
int result = 0;
try {
conn = getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
result = stmt.executeUpdate(sql);
}
catch (SQLException ex) {
result = 0;
}
try {
stmt.close();
}
catch (SQLException ex1) {
}
return result;
} /*
*功能:关闭数据库的连接
*/
public void close() {
try {
if (rs != null) {
rs.close();
}
}
catch (Exception e) {
e.printStackTrace(System.err);
}
try {
if (stmt != null) {
stmt.close();
}
}
catch (Exception e) {
e.printStackTrace(System.err);
}
try {
if (conn != null) {
conn.close();
}
}
catch (Exception e) {
e.printStackTrace(System.err);
}
}
}