[Ajuda] popular dados

Java

09/10/2010

Bom dia estou com uma duvidade como fazer uma select para caputurar dados tipo assim. tenho uma tabela tanques e outra tabela remanejo e tenho uma tela q tem q mostrar o seguintes campo. CODIGO, DATA, ORIGEM E DESTINO, QTD. O problema e que os campos ORIGEM E DESTINO fazer referencia ao campo id da tabela tanques enta so estou conseguindo popuplar o campo ORIGEM pq eu naum guardo o nome do campo so guardo o ID entao como faco para preencher os dois ?

public List getManejo() throws SQLException {

        String sql = "select remanejo.id_remanejo,remanejo.remj_data,remanejo.id_origem,tanques.tanq_descricao,"
                + "remanejo.id_destino,remanejo.remj_qtd from public.remanejo inner join public.tanques on tanques.id_tanque = remanejo.id_origem";

        ResultSet rs = executeQuery(sql);
        List toReturn = new LinkedList();
        while (rs.next()) {
            toReturn.add(populateManejo(rs));
        }
        return toReturn;
    }

    private Remanejo populateManejo(ResultSet rs) throws SQLException {
        Remanejo toReturn = new Remanejo();
        toReturn.setId(rs.getInt("id_remanejo"));
        toReturn.setData(rs.getDate("remj_data"));
        toReturn.setDescricao(rs.getString("tanq_descricao"));
        toReturn.setQtd(rs.getInt("remj_qtd"));
        return toReturn;
    }
 
Adriano Carvalho

Adriano Carvalho

Curtidas 0

Respostas

Davi Costa

Davi Costa

09/10/2010

Tem várias maneiras de fazer isso...
Cria uma outra classe que tenha como atributos as duas entiades que vc quer:

public class TanqueRemanejo{

private Tanque tanque;

private Remanejo remanejo;

//getters e setters

}

Na hora de popula o que chega no banco tu joga o valor para esse novo objeto. E a tabela agora vai ser
desse novo objeto também.
Espero ter ajudado

Att Davi


GOSTEI 0
Dyego Carmo

Dyego Carmo

09/10/2010

Resolvido amigo ?

Valeu Z!
GOSTEI 0
Daniel Thomaz

Daniel Thomaz

09/10/2010

naum 
GOSTEI 0
Julio Cesar.

Julio Cesar.

09/10/2010

Não entendi o problema? É referente á algum curso?   att, Julio Cesar
GOSTEI 0
Adriano Carvalho

Adriano Carvalho

09/10/2010

da uma olhada na minha tabela .


/*==============================================================*/
/* Table: remanejo                                              */
/*==============================================================*/
create table remanejo (
   id_remanejo          SERIAL               not null,
   remj_data            DATE                 not null,
   id_origem            int4                 not null,
   id_destino           int4                 not null,
   remj_qtd             INT4                 null default 0,
   remj_peso            decimal(15,3)        null default 0.00,
   sql_deleted          char(1)              null default 'F'
      constraint CKC_SQL_DELETED_REMANEJO check (sql_deleted is null or (sql_deleted = upper(sql_deleted)))
);

alter table remanejo
   add constraint PK_REMANEJO primary key (id_remanejo);

/*==============================================================*/
/* Index: indx_id_remanejo                                      */
/*==============================================================*/
create unique index indx_id_remanejo on remanejo (
id_remanejo
);

/*==============================================================*/
/* Index: indx_id_origem                                        */
/*==============================================================*/
create  index indx_id_origem on remanejo (
id_origem
);

/*==============================================================*/
/* Index: indx_id_destino                                       */
/*==============================================================*/
create  index indx_id_destino on remanejo (
id_destino
);

alter table remanejo
   add constraint fk_id_tang_orig_remaj foreign key (id_origem)
      references tanques (id_tanque)
      on delete restrict on update restrict;

alter table remanejo
   add constraint fk_id_tanq_dest_remaj foreign key (id_destino)
      references tanques (id_tanque)
      on delete restrict on update restrict;





como vc pode ve eu tenho dois campos nessa tabela q fazer referencia ai mesmo campo de outra.

entao quero preencher aquela tela acima sedo q mostre o nome do tanque de origem e destino.

senda q os campos id_origem e id_destino fazem referencia ao campo id_tanque da tabela tanques.

entao use o seguinte no netbeans.
 public List<Remanejo> getManejo() throws SQLException {

        String sql = "select remanejo.id_remanejo,remanejo.remj_data,remanejo.id_origem,tanques.tanq_descricao,"
                + "remanejo.id_destino,remanejo.remj_qtd from public.remanejo inner join public.tanques on tanques.id_tanque = remanejo.id_origem";

        ResultSet rs = executeQuery(sql);
        List<Remanejo> toReturn = new LinkedList<Remanejo>();
        while (rs.next()) {
            toReturn.add(populateManejo(rs));
        }
        return toReturn;
    }


mais isso so me traz o nome do tanque de origem como faco para trazer o nome do tanque de destino tbm?
GOSTEI 0
Davi Costa

Davi Costa

09/10/2010

Acredito que a parte do java, como havia citado antes vc deva ter entendido.
Mas agora ficou um pouco mais claro seu problema, que é no select.

Adriano dá uma pesquisada em left join e outer join, que essa pode ser sua solução.

Att Davi
GOSTEI 0
Adriano Carvalho

Adriano Carvalho

09/10/2010

ok. vou ver aqui bixo enrolado esse 
GOSTEI 0
Dyego Carmo

Dyego Carmo

09/10/2010

Conseguiu resolver?

GOSTEI 0
Adriano Carvalho

Adriano Carvalho

09/10/2010

ainda naum...
GOSTEI 0
Davi Costa

Davi Costa

09/10/2010

Cara só uma sugestão,se este não for um sistema embarcado que vc trabalhe, se for um sistema seu.
Utiliza JPA em vez de JDBC, vai facilitar e muito sua vida.

Att Davi
GOSTEI 0
Adriano Carvalho

Adriano Carvalho

09/10/2010

RESOLVI TIRAR O OUTRO TANQUE DA MINHA TELA FICA BEM MAIS FACIL DE RESOLVER...KKKKKK..
GOSTEI 0
POSTAR