Solo una cosa, si mostrar() no lo va a usar nadie mas que la clase accesoBD deberia ser private, no public.
Por lo demas efectivamente, esa es la idea. Creo que lo has entendido.
Ahora piensa otra cosa, una clase accesoBD que sea la unica que conecte y desconecte de la BD y tenga un metodo
Código:
public Resultset consultaGenerica (String query) throws SQLException
{
try{
this.conectar();
rs = this.mostrar(query);
}catch(SQLException se)
{
throw se;
}
finally
{
this.desconectar();
}
return rs;
}
}
y un monton de clases BD alumnosBD, profesoresBD todas ellas extendiendo de esta accesoBD.
Código:
public class alumnosBD extends accesoBD
{
public ArrayList lista()
{
ArrayList lista = new ArrayList();
alumnos alu;
try
{
Resultset rs = consultaGenerica("select * from p");
while(rs.next())
{
alu = new alumnos(rs.getInt("id"), rs.getString("nombre"));
lista.add(alu);
}
}
catch(SQLException se)
{
System.out.println(se.getMessage());
}
return lista;
}
}
Con ello tendrias una unica clase que se encargaria de CONECTAR, DESCONECTAR EJECUTAR QUERYS, INSERT UPDATES .... con la base de datos. Tal que si mañana tu base de datos pasa a ser oracle, solo hay que cambiar esta clase.
Y otro matiz, mejor que un select * from p, haz un select id, nombre from p. Podras hacer un uso mas eficiente de los indices y si mañana el administrador de base de datos te cambia nombre por nombre2 te enteraras a la primera, si no te puedes volver majara buscando donde falla tu codigo.
Y mejor que gracias, invitate a una cervecita...
Saludos.