Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/06/2015, 14:57
lener128
 
Fecha de Ingreso: junio-2015
Mensajes: 1
Antigüedad: 8 años, 10 meses
Puntos: 0
Información Mostrar datos en arraylist de clases relacionadas M-M

Hola a todos, anteriorente hice una aplicación en vb.net, pero ahora quiero pasarlo este sistema a java y estoy desarrollando, y presente con un inconveniente:

1. Pasé mis tablas de mysql a clases de java, las tablas son las sigueintes:
- Almacen
- Almacen_TipoAlmacen
- TipoAlmacen

Es una relación de muchos a muchos.



Código:
package ComponenteModelo;
public class Almacen {
    private Integer idAlmacen;
    private String aCodigo;
    private String aDescripcion;
    private String aLugar;
    private String aObservaciones;
    private boolean aEstado;

    public Integer getIdAlmacen() {
        return idAlmacen;
    }
    public void setIdAlmacen(Integer idAlmacen) {
        this.idAlmacen = idAlmacen;
    }
    public String getaCodigo() {
        return aCodigo;
    }
    public void setaCodigo(String aCodigo) {
        this.aCodigo = aCodigo;
    }
    public String getaDescripcion() {
        return aDescripcion;
    }
    public void setaDescripcion(String aDescripcion) {
        this.aDescripcion = aDescripcion;
    }    
    public String getaLugar() {
        return aLugar;
    }
    public void setaLugar(String aLugar) {
        this.aLugar = aLugar;
    }
    public String getaObservaciones() {
        return aObservaciones;
    }
    public void setaObservaciones(String aObservaciones) {
        this.aObservaciones = aObservaciones;
    }
    public boolean getaEstado() {
        return aEstado;
    }
    public void setaEstado(boolean aEstado) {
        this.aEstado = aEstado;
    }   
}
Código:
package ComponenteModelo;
public class Almacen_TipoAlmacen {
    private TipoAlmacen tipoalmacen;
    private Almacen almacen;
    private boolean estado;

    public TipoAlmacen getTipoalmacen() {
        return tipoalmacen;
    }
    public void setTipoalmacen(TipoAlmacen tipoalmacen) {
        this.tipoalmacen = tipoalmacen;
    }
    public Almacen getAlmacen() {
        return almacen;
    }
    public void setAlmacen(Almacen almacen) {
        this.almacen = almacen;
    }
    public boolean getEstado() {
        return estado;
    }
    public void setEstado(boolean estado) {
        this.estado = estado;
    }    
}
Código:
package ComponenteModelo;

public class TipoAlmacen {
    private Integer idtipoalmacen;
    private String nombre;

    public Integer getIdtipoalmacen() {
        return idtipoalmacen;
    }
    public void setIdtipoalmacen(Integer idtipoalmacen) {
        this.idtipoalmacen = idtipoalmacen;
    }
    public String getNombre() {
        return nombre;
    }
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }  
}
Hasta ahi no tengo problemas en ingresar y mostrar los datos; el detalle es cuando quiero ver en una tabla el codigo de almacen, el nombre y el tipodealmacen, con consultas sql, estuve viendo así:

Código:
public static ArrayList<Almacen> mostrarAlmacen() throws SQLException {
        Connection cnn = BD.getConnection();
        PreparedStatement ps = null;
        ArrayList<Almacen> lista = new ArrayList<Almacen>();
        ps = cnn.prepareStatement("SELECT `aCodigo`,`tipoalmacen`.`idtipoalmacen`,`aDescripcion`,`empresa`.`idempresa`,`aLugar`,`aObservaciones`,`aEstado` from almacen \n" +
        "SELECT `aCodigo`,`tipoalmacen`.`nombre`,`aDescripcion`,`aLugar`,`aObservaciones`,`aEstado` from almacen \n" +
        "inner join almacen_tipoalmacen on almacen.idalmacen=almacen_tipoalmacen.idalmacen\n" +
        "inner join tipoalmacen on almacen_tipoalmacen.idtipoalmacen=tipoalmacen.idtipoalmacen\n" +
        "GROUP BY ACODIGO");
        ResultSet rs = ps.executeQuery();
        while (rs.next()) {
            Almacen Alm = new Almacen();         
            Alm.setaCodigo(rs.getString(1));            
            Alm.setaDescripcion(rs.getString(3));
            Alm.setaLugar(rs.getString(5));
            Alm.setaObservaciones(rs.getString(6));
            Alm.setaEstado(rs.getBoolean(7));
            lista.add(Alm);
        }
        cnn.close();
        ps.close();
        return lista;
    }
Ahi solo me muestra los datos de la tabla almacen en el arraylist para que me muesre el tipo tengo que instanciar la clase Tipoalmacen ? o Almacen_tipoAlmacen y como se puede hacer cuando son de mas tablas ya sea 3 o 4 tablas.

Por favor si me pueden orientar, gracias de antemano.