Ok, allora il problema va affrontato in modo più generale (pensavo i valori fossero fissi).
Crea una HashMap in cui vai a mappare ciascun valore contenuto nella prima colonna con un TableModel:


codice:
HashMap<Integer, MioModel> mappaModel = new HashMap<Integer,MioModel>();

Per ciascun record, prendi il valore della prima colonna e controlla se esiste già una mappatura. Se esiste la mappatura, prelevi il table-model associato e ci aggiungi il record, se non esiste, crei un nuovo table-model e crei la mappatura:


codice:
while( rs.next() ) {
   int tipoRecord = rs.getInt( 1 );
   if ( mappaModel.containsKey(tipoRecord) ) {
      // Esiste già la mappatura: aggiungo il record al relativo TableModel
      Record record = ... ;   // Crei l'oggetto dal ResultSet
      MioModel model = mappaModel.get( tipoRecord );
      model.add( record );
   } else {
      // Non esiste alcuna mappatura, la creo e ci aggiungo il record
      Record record = ... ;   // Crei l'oggetto dal ResultSet
      MioModel model = new MioModel();
      model.add( record );
      mappaModel.put(tipoRecord, model);
   }
}

Ora hai tutti i TableModel, ciascuno contenente i record corrispondenti. Non ti rimane che creare le JTable di conseguenza:


codice:
// Dovrò creare esattamente "mappaModel.size()" JTables...
JTable[] tabelle = new JTable[ mappaModel.size() ];
int idx = 0;
for(Map.Entry<Integer,MioModel> entry : mappaModel.entrySet()) {
   tabelle[idx] = new JTable( entry.getValue() );
   idx++;
}

Fatto. Ora aggiungi tutte le tabelle al tuo container.


Ciao.