JTable里面为什么没有数据啊

程序中有一点小错误,不会调试,为什么数据库中查询的数据没有显示到JTable中?




import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.AbstractTableModel;

public class TestTable implements ActionListener{
    String choice;
     String[] columns={"book_id","book_number","book_name","isbn","book_type","publishing_house","publishing_time","author","inbound_date","state","price"};
    List<Object> rows=null;
    JFrame frame;//主界面
     AbstractTableModel model;
     JTable table;
     Container contentPane;//容器,存放表格等东西
     Toolkit tools=Toolkit.getDefaultToolkit();
     Dimension size=tools.getScreenSize();
     int width = size.width / 2;
     int height = size.height / 2;
     Connection conn;
     Statement stat;
     JTextField nameField;//
    public TestTable() {
    frame = new JFrame("检索界面");
    rows = new ArrayList<Object>();
    init();
    }
     void init() {
    frame.setSize(width, height);// 设置大小
    frame.setLocation(width / 2, height / 2);// 设置位置
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置关闭时动作
    frame.setLayout(new BorderLayout());// 设置布局方式
    contentPane = frame.getContentPane();
    model = new TableModel();// TableModel是自定义的类。使用自定义的类是为了更好的做自己想要做的事,比如更新数据库==。
    table = new JTable(model);
    JScrollPane scroll = new JScrollPane(table,
    JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
    JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);// 给表格加入滚动条,横向不加,纵向加
    contentPane.add(scroll, BorderLayout.CENTER);
    // 新建一个面板,放在表格顶端,用来放置搜索条件
    JPanel searPanel = new JPanel();
    JButton loadBtn = new JButton("检索");//检索按钮
    loadBtn.addActionListener(this);
    loadBtn.setActionCommand("load");
    nameField = new JTextField(15);//文本框
    JComboBox combo;
    combo = new JComboBox<String>();//下拉列表框
    combo.addItem("任意词");
    combo.addItem("图书名");
    combo.addItem("出版社");
    combo.addItem("作者");
    combo.setFont(new Font("楷体", Font.BOLD, 20));
    searPanel.add(combo);
    searPanel.add(nameField);
    searPanel.add(loadBtn);
    contentPane.add(searPanel,BorderLayout.NORTH);
    frame.setVisible(true);
    }
    class TableModel extends AbstractTableModel{
       //获取表格行数
        @Override
        public int getRowCount() {
            // TODO Auto-generated method stub
            return rows.size();
        }
        //获取表格列数
        @Override
        public int getColumnCount() {
            // TODO Auto-generated method stub
            return columns.length;
        }
        //获取某个单元格数据
        @Override
        public Object getValueAt(int rowIndex, int columnIndex) {
            // TODO Auto-generated method stub
            return ((Object[]) rows.get(rowIndex))[columnIndex];
        }
        //获取表头
        @Override
        public String getColumnName(int column) {
        return columns[column];
        }

    }
    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub    
        if(e.getActionCommand().equals("load")) {
            
                Class.forName("com.mysql.jdbc.Driver");    
                conn =DriverManager.getConnection("jdbc:MySQL://localhost:3306/test","root","123456");// 连接数据库,登录名是root,密码是123
                try {
                    if (e.getSource() == loadBtn) {
                        try {
                        if (e.getSource() == loadBtn) {
                            if(combo.getSelectedItem()=="任意词") {
                                choice="";
                            }
                            else if(combo.getSelectedItem()=="图书名"){
                                choice="book_name";
                            }
                            else if(combo.getSelectedItem()=="出版社") {
                                choice="publishing_house";
                            }
                            else if(combo.getSelectedItem()=="作者"){
                                choice="author";
                            }
                        }
                        stat = conn.createStatement();
                        String sql;
                         sql = "select * from book where "+choice+" LIKE '%"+nameField.getText().trim()+"%'";
                        ResultSet set = stat.executeQuery(sql);// 执行查询,并返回查询的结果集
                        rows.clear();
                        }
                        catch (Exception e1) {
                            System.out.println("搜索框不能为空!");
                            e1.printStackTrace();
                        }
                  }
                }
                catch(ClassNotFoundException cefe) {
                    System.out.println("数据库驱动加载错误,请确保添加正确的jar包");
                    
                }catch(SQLException sqle) {
                    System.out.println("数据库连接错误,请仔细检查用户名、密码、端口等是否有错");
            }finally {// 记得关闭连接
                try {
                    if (conn != null)
                    conn.close();
                    if (stat != null)
                    stat.close();
                 } catch (SQLException e1) {
                    System.err.println("关闭连接失败");
                    }
          }

        }
        
   }
    public static void main(String args[]) {
        new TestTable();
    }
}