Hola:
Para el finally, puedes declarar la variable antes del try y abrir la conexión dentro
Código:
Connection conexion=null;
try {
conexion = DriverManager.getConnection (....);
...
} catch (...) {
} finally {
if (null != conexion) conexion.close();
}
En cuanto a cerrar el while, debes cerrarlo antes de cerrar la conexion, el close de la conexion debe ir fuera del bucle.
ArrayList tiene un método toArray() que te devuelve el Object[]. De todas formas, echa un ojo a este enlace para ver cómo meter los resultados de la base de datos en un JTable
http://www.chuidiang.com/java/mysql/...set_jtable.php
Se bueno.