problemas entre base de datos y objetos de clases
Hola el problema que tengo es el siguiente.
Me he hecho con el editor visual de eclipse una pantalla con swin, tengo una clase X (con atributos y metodos) y una tabla en una base de datos (que se corresponde con la clase que he mencionado).
PRIMERO:
Cuando en la pantalla visual meto los datos lo que hago es crearme un objeto de la clase X y llamo a un metodo que tengo implementado dentro de la clase que es insertar en BBDD. ¿Esto esta bien?
SEGUNDO: Si lo anterior es correcto, cuando hago una consulta a la BBDD ¿como puedo hacer para volcar la informacion a un objeto de la clase X?
lo que yo hago es:
ResulSet rs;
rs = con.getConsulta("Select * ...");
while (rs.next()) {
campoVisualiar = rs.getObject(4).toString()
}
pero no se como volcar la informacion a un objeto de la clase X
No se si la filosifia que uso con respecto a interfaz+clase+tablaBBDD es correcta.
Alguien me puede ayudar ???
Espero que haya quedado claro
Me he hecho con el editor visual de eclipse una pantalla con swin, tengo una clase X (con atributos y metodos) y una tabla en una base de datos (que se corresponde con la clase que he mencionado).
PRIMERO:
Cuando en la pantalla visual meto los datos lo que hago es crearme un objeto de la clase X y llamo a un metodo que tengo implementado dentro de la clase que es insertar en BBDD. ¿Esto esta bien?
SEGUNDO: Si lo anterior es correcto, cuando hago una consulta a la BBDD ¿como puedo hacer para volcar la informacion a un objeto de la clase X?
lo que yo hago es:
ResulSet rs;
rs = con.getConsulta("Select * ...");
while (rs.next()) {
campoVisualiar = rs.getObject(4).toString()
}
pero no se como volcar la informacion a un objeto de la clase X
No se si la filosifia que uso con respecto a interfaz+clase+tablaBBDD es correcta.
Alguien me puede ayudar ???
Espero que haya quedado claro
Hola otra vez, perdona que vuelva a molestar, pero no acabo de ajustar todos los conceptos en mi cabeza.
¿Me preguntaba si tu tienes o conoces de algun sitio donde pueda descargarme un ejemplo sencillo - basico para ver si asi centro mis ideas?
Me lio bastante y no acabo de tener una idea clara.
Yo en mi caso tengo dos tablas (a y B) que tienen una relacion de 1 a N.
Por lo que he leido debere de tener.
1 clase A y una clase B en la que defina atributos y metodos
1 para A y otro para B
1 CloudscapeCustomerDAO para A y otro para B
un FactoryDao para los dos
¿no?
El otro problema es donde debo de meter las sentencias sql de insertar, borrar, ...
¿Me preguntaba si tu tienes o conoces de algun sitio donde pueda descargarme un ejemplo sencillo - basico para ver si asi centro mis ideas?
Me lio bastante y no acabo de tener una idea clara.
Yo en mi caso tengo dos tablas (a y B) que tienen una relacion de 1 a N.
Por lo que he leido debere de tener.
1 clase A y una clase B en la que defina atributos y metodos
1 para A y otro para B
1 CloudscapeCustomerDAO para A y otro para B
un FactoryDao para los dos
¿no?
El otro problema es donde debo de meter las sentencias sql de insertar, borrar, ...
Hola ahi te va ala receta de cocina:
Para representar una tabla lo que debes de hacer en java es crear el llamado DTO.
La llamare por ejemplo Cliente, esta tabla tambien esta en la base de datos.
public class Cliente {
private String nombre;
private String apellidos;
//metodos get y set
}
ahora lo que sigue es crear una interface que contenga las operaciones que vas a hacer en la base de datos
public interface ClienteDAO {
public Cliente findByPrymaryKey(String id);
public List findAllClients();
}
ahora implementas el DAO
public class ClienteDAOImpl implements ClienteDAO {
// aqui se coloca ya el codigo SQL y utilizando el DTO
//y no importando a cuantas tablas tengas tengas que accesar
}
El factory regresa una referencia a la interfaz DAO
public class ClienteFactory {
public ClienteDAO getClienteDAO() {
return new ClienteDAOImpl
}
}
y Listo tienes el patron
Para representar una tabla lo que debes de hacer en java es crear el llamado DTO.
La llamare por ejemplo Cliente, esta tabla tambien esta en la base de datos.
public class Cliente {
private String nombre;
private String apellidos;
//metodos get y set
}
ahora lo que sigue es crear una interface que contenga las operaciones que vas a hacer en la base de datos
public interface ClienteDAO {
public Cliente findByPrymaryKey(String id);
public List findAllClients();
}
ahora implementas el DAO
public class ClienteDAOImpl implements ClienteDAO {
// aqui se coloca ya el codigo SQL y utilizando el DTO
//y no importando a cuantas tablas tengas tengas que accesar
}
El factory regresa una referencia a la interfaz DAO
public class ClienteFactory {
public ClienteDAO getClienteDAO() {
return new ClienteDAOImpl
}
}
y Listo tienes el patron
Que tal me da mucho gusto que hagan este tipo de preguntas porque se interesan mucho por la arquitectura de los sistemas que estan desarrollando.
Ahora respecto a lo de tu pregunta lo que debes de hacer es aplicar el "patron DAO", que es una buena forma ordenada de accesar a la base de datos.
La forma en que lo tienes planteado en este momento no es la más adecuada, por que no estas dividiendo los componentes de vista con los accesos a datos, te falta una capa intermedia, la llamada capa DAO.
Checate esta URL
http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
Es la recomendación de SUN para poder accesar a la Base de datos. Espero que esta información te sea de utilidad.
Saludos!!!!!
Viva Linux Debian y Java
Ahora respecto a lo de tu pregunta lo que debes de hacer es aplicar el "patron DAO", que es una buena forma ordenada de accesar a la base de datos.
La forma en que lo tienes planteado en este momento no es la más adecuada, por que no estas dividiendo los componentes de vista con los accesos a datos, te falta una capa intermedia, la llamada capa DAO.
Checate esta URL
http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
Es la recomendación de SUN para poder accesar a la Base de datos. Espero que esta información te sea de utilidad.
Saludos!!!!!
Viva Linux Debian y Java
