运行之后一点就报错问题出在哪里

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

import com.mysql.jdbc.DatabaseMetaData;

public class zonglan extends JFrame implements ActionListener
{

   private static final long serialVersionUID = 1L;

   JTable table;
   JPanel overViewPanel;
   JButton button_overview;

   DefaultTableModel dataModel; // 新建一个默认数据模型

   public zonglan()
   {
      init();
      setBounds(300, 150, 700, 550);
      setVisible(true);
      setTitle("图书总览界面");
      setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
   }

   void init()
   {
      overViewPanel = new JPanel();
      button_overview = new JButton("总览");
      dataModel = new DefaultTableModel();//初始化数据模型
      table = new JTable(dataModel);//数据模型与表格绑定

      add(overViewPanel);
      overViewPanel.add(button_overview);
      overViewPanel.add(new JScrollPane(table));

      button_overview.addActionListener(this);
   }

   public void actionPerformed(ActionEvent e)
   {
      Connection con = null;
      Statement sql;
      ResultSet resultSql, resultMetadata;

      int metaCount = 0;

      try
      {
         ljsjk strCon = new ljsjk();
         con = strCon.SqlConnection(con);
         sql = con.createStatement();

         DatabaseMetaData metadata = (DatabaseMetaData) con.getMetaData();// 定义数据库元数据对象,并用连接对象调用方法获取元数据初始化它
         resultMetadata = metadata.getColumns(null, null, "books", null);// 获取元数据的行数,并保存到结果集对象中

         while (resultMetadata.next())
         {
            metaCount++; // 统计结果集的行数,该结果集行数也是数据表的列数
         }

         String b[][] = new String[50][metaCount];// 50指表格行数,metaCount指表格列数;
         resultSql = sql.executeQuery("select * from books");
         ResultSetMetaData resultSetMetaData = resultSql.getMetaData();

         String columnName[] = new String[metaCount];
         for (int i = 1; i <= metaCount; i++)
         {
            columnName[i - 1] = resultSetMetaData.getColumnName(i); // 第i列列名
         }

         for (int i = 0; resultSql.next(); i++)
         {
            for (int j = 0; j < metaCount; j++)
            {
               b[i][j] = resultSql.getString(j + 1);
            }
         }
         dataModel.setDataVector(b, columnName);
         con.close();

      } catch (SQLException ex)
      {
         JOptionPane.showMessageDialog(null, "数据库操作失败!" + ex.toString(), "警告提示!", JOptionPane.WARNING_MESSAGE);
      }
   }

}

 

67行附近把接收类型强转一下