Debería ser, como mínimo, algo así:
Cita: catch(SQLException ex){ ex.printStackTrace();
}
Si no, cuando ocurre un error simplemente salta al catch, tú no imprimes nada y entonces no sabes que ha pasado. Eso es lo que se conoce como un catch "ciego", por que lo captura todo y no dice nada.
Cuando veas el mensaje por consola, sabrás de donde viene el error.

.
S!
PD: El error en sí es muy tonto y muy típico, a mi todavía me pasa de vez en cuando

, pero si te digo cual es, no aprenderás a encontrar tus propios errores

.