Depende de la cantidad de datos que tengas.
Si son muchos, es mejor como estás haciendo con el select a base de datos, evitando traer a memoria y tratar en tu código java todos los registros de la base de datos.
Si son pocos, es más rápido cargarlo todo en el JTable y luego añadir filtros directamente al JTable ( echa un ojo a la clase RowFilter
http://chuwiki.chuidiang.org/index.p..._filtrar_filas )
Para decidir si son pocos o muchos, básicamente es que puedas traerlos a memoria todos sin peligro de quedarte sin ella, ten en cuenta que la máquina virtual tiene su propia memoria asignada que puedes cambiar si lo crees necesario.
Se bueno.