13/09/2005, 11:57
|
| | Fecha de Ingreso: marzo-2005
Mensajes: 70
Antigüedad: 19 años, 10 meses Puntos: 0 | |
Gracias por el interés y por la respuesta. Estoy usando Struts y su pool de conexiones pero me he encontrado algunos casos donde no puedo usarlo (o igual no se hacerlo). Estos casos me vienen por intentar separar y estructurar mejor las capas. Me explico:
He leido que es mejor no hacer las llamadas a la BD directamente en la clase Action y dejar estas acciones a otra clase. Así, tengo una clase donde hago las llamadas a la BD:
public class MacrocicloDAO {
private DataSource dataSource = null;
public MacrocicloDAO(DataSource dataSource){
this.dataSource = dataSource;
}
public ArrayList RecuperarTemporadas(String dni) throws SQLException, Exception{
....
campo = rs.getString("CONINDATA");
HashMap cconindata = util.RetornaMapaConIndAta(campo);
...
}
Así en la clase Action puedo usar sus métodos con el pool:
...
MacrocicloDAO DAO = new MacrocicloDAO(getDataSource(request,"DataBase"));
listatemp = DAO.RecuperarTemporadas(dni);
...
Esto funciona perfectamente pero si un método del DAO es muy largo o bien un trozo de código se tiene que repetir muchas veces, he decidido separarlo en un método en otra clase común y así tenerlo una vez pero poder utilizarlo muchas veces (supongo que así estructuro mejor la aplicación). Por ejemplo, tengo una clase Util:
public HashMap RetornaMapaConIndAta(String campo) throws SQLException, Exception{
....
}
Es decir, en método del DAO puedo actuar sobre la BD ya que tengo abierto el pool de conexiones que se abrió en el Action pero si dentro del método DAO quiero utilizar otro método (que está fuera de la clase DAO) tengo que abrir una nueva conexión o crear un nuevo pool.
Se que todo me viene de esta instrucción: getDataSource(request,"DataBase") ya que en el Action puedo usar ese request gracias al HttpServletRequest request que viene como parámetro del Action. Pero claro, en la clase DAO ya no tengo ese parámetro (o por lo menos no me funciona) y tengo que buscarme una nueva forma de crear el pool.
Resumiendo, no es que tenga problemas ya que crearé el pool en server.xml de tomcat . Es sólo que estoy en estado de aprendizaje, he perdido una horas con esto y quería saber alguna opinión más.
Un saludo y que ¡viva Struts!. |