Datatable sem usar JSF

Galera meu problema é o seguinte:

tenho um metodo genérico de consulta,ele possui um resultset, populado com minha tabela, o problema é que quando eu tento passar o rs ele se torna null, pois eu tenho que fechar a conexão antes… uma vez que o rs trabalha conectado ao banco, logo é natural que ele fique null… oque eu preciso é um objeto igual ao do “.net” um DataTable por exemplo, que eu posso passar pra qualquer camada sem me preocupar em estar ou não conectado ao banco…

como eu faria isso?
qual tipo de objeto populado eu poderia retornar sem estar conecatdo?

Segue meu método

public ResultSet ExecuteQuery(String strSQL)
{
try
{
PreparedStatement ps = null;
Connection con;
Conexao cn = new Conexao();
con = cn.connection();
ps = con.prepareStatement(strSQL);
ResultSet rs = ps.executeQuery();
if(rs.first())
{
return rs;
}
cn.closeConnection();
}
catch (Exception e)
{
e.printStackTrace();
return null;
}

    return null;
}

e aí galera? ninguém sabe? :shock: