Source Code : show database data into JTable [closed]

show database data into JTable [closed]

public class d7Table extends JFrame {

  String dbName = "mydb";
  String bdUser = "root";
  String dbPassword = "2323";
  String dbUrl = "jdbc:mysql://localhost/mydb";
  Connection con = null;
  PreparedStatement stm = null;
  ResultSet res = null;
  public JTable table;

  public d7Table() {
  try {
  con = DriverManager.getConnection(dbUrl, bdUser, dbPassword);
  System.out.println("Connected to database successfully!");
  res = stm.executeQuery("select * from mytable");

  table = new JTable(myTableModel(res));
  JOptionPane.showMessageDialog(null, new JScrollPane(table));

  } catch (SQLException ex) {
  System.out.println("Could not connect to database");
  }

  add(new JScrollPane(table), BorderLayout.CENTER);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.setSize(800, 600);
  this.setLocation(300, 60);
  this.setVisible(true);

  }

  public static DefaultTableModel myTableModel(ResultSet rs) throws SQLException {
  ResultSetMetaData metadata = (ResultSetMetaData) rs.getMetaData();
  int columnsCount = metadata.getColumnCount();
  Vector columnNames = new Vector<>();
  for (int i = 1; i < columnsCount; i++) {
  columnNames.add(metadata.getColumnName(i));
  }
  Vector data = new Vector<>();
  while (rs.next()) {
  Vector eachLine = new Vector<>();
  for (int i = 1; i < columnsCount; i++) {
  eachLine.add(rs.getObject(i));
  }
  data.add(eachLine);
  }
  return new DefaultTableModel(data, columnNames);

  }

  public static void main(String[] args) {
  SwingUtilities.invokeLater(new Runnable() {
  @Override
  public void run() {
  new d7Table();
  }
  });
  }
}

My Error:

Connected to database successfully!
 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at JDBCtest.d7Table.(d7Table.java:33)  // refer to res =stm.execute... Row
at JDBCtest.d7Table$1.run(d7Table.java:73)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
...