Olá pessoal,
Bem, sou nova aqui no fórum, e já dei uma revirada em google, guj… e não achei o que queria, então resolvi postar aqui
Estou fazendo um projeto de faculdade, que é um banco de dados de DOAÇÃO DE ÓRGÃOS
Só para vcs entenderem, são 4 tabelas: DOADOR, RECEPTOR, ÓRGÃO e ESTOQUE
ESTOQUE tem a Id própria e recebe 3 chaves estrangeiras, uma de cada uma das outras tabelas
As outras 3 tabelas já implementei com interface e tudo… E agora comecei a implementação do ESTOQUE… fiz as classes Estoque, EstoqueDAO e TestaEstoque
Estou tentando testar o adicionar… Não sei se a linha de raciocínio do adicionar está certa… Eu vou tentar explicar primeiro como deve funcionar:
Eu tenho que fazer um formulário ESTOQUE onde o usuário entra com a Id do doador, Id do receptor e Id do órgão, relacionando assim essas 3 chaves estrangeiras… Então tenho que pegar essas id’s que o usuário escolheu das minhas outras classes (DOADOR, RECEPTOR e ESTOQUE) e adicioná-las. Na consulta, devo pedir para o usuário escolher pesquisar por doador, receptor ou órgão, pedir para ele entrar com a id respectiva e em seguida listar o respectivo cadastro no estoque…
A lista até que saiu no meu teste aqui (TUDO SEM INTERFACE AINDA), mas o adiciona eu to perdida…
A minha pergunta é: como fazer ( num sysout mesmo, só para teste ) para adicionar os id’s que o usuário digitar nesse form? Em código:
CLASSE Estoque
package br.com.orgaobd.entidades;
public class Estoque {
private int esId;
private Doador doador;
private Receptor receptor;
private Orgao orgao;
//gets and sets
CLASSE EstoqueDAO
package br.com.orgaobd.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import br.com.orgaobd.entidades.Doador;
import br.com.orgaobd.entidades.Estoque;
import br.com.orgaobd.entidades.Orgao;
import br.com.orgaobd.entidades.Receptor;
import br.com.orgaobd.jdbc.ConnectionFactory;
public class EstoqueDAO {
private Connection connection = new ConnectionFactory().getConnection();
public EstoqueDAO() throws SQLException {
}
public void adiciona(Estoque estoque) {
String sql = "insert into estoque(esDoId, esReId, esOrgId) values (?,?,?)";
try {
PreparedStatement ps = this.connection.prepareStatement(sql);
ps.setInt(1, estoque.getDoador().getDoId());
ps.setInt(2, estoque.getReceptor().getReId());
ps.setInt(3, estoque.getOrgao().getOrgId());
ps.execute();
ps.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public List<Estoque> getLista(int idDo) {
try {
List<Estoque> dados = new ArrayList<Estoque>();
PreparedStatement ps = this.connection.prepareStatement("select r.reNome,o.orgNome from receptor r, orgao o, estoque e, doador d where e.esReId=r.reId and e.esOrgId=o.orgId and e.esDoId=?");
ps.setInt(1, idDo);
ResultSet rs = ps.executeQuery();
while (rs.next())
{
Estoque estoque = new Estoque();
Orgao orgao = new Orgao();
orgao.setOrgNome(rs.getString("o.orgNome"));
estoque.setOrgao(orgao);
Receptor receptor = new Receptor();
receptor.setReNome(rs.getString("r.reNome"));
estoque.setReceptor(receptor);
dados.add(estoque);
}
rs.close();
ps.close();
return dados;
} catch (SQLException e) {
// TODO Auto-generated catch block
throw new RuntimeException(e);
}
}}
CLASSE TestaEstoque
package br.com.orgaobd.teste;
import java.util.List;
import javax.swing.JOptionPane;
import br.com.orgaobd.dao.EstoqueDAO;
import br.com.orgaobd.entidades.Estoque;
public class TestaEstoque {
public static void main(String[] args) {
//TESTA LISTA
/*
try{
EstoqueDAO dao = new EstoqueDAO();
List<Estoque> dados = dao.getLista(2);
for(Estoque estoque : dados){
System.out.println("Id estoque: " + estoque.getEsId());
System.out.println("Id doador: " + estoque.getDoador().getDoId());
System.out.println("Id receptor: " + estoque.getReceptor().getReId());
System.out.println("Id orgao: " + estoque.getOrgao().getOrgId());
}
System.out.println("");
System.out.println("FIM DA LISTA");
}catch(Exception e){ System.out.println(e); }
}
*/
//TESTA ADICIONA
Estoque estoque = new Estoque();
/*###################################
AQUI!!! COMO FAÇO PARA SETAR OS DADOS QUE O USUÁRIO ENTRAR??
###################################*/
if(JOptionPane.showConfirmDialog(null, "Confirmar cadastro?") ==
JOptionPane.YES_OPTION) { try {
EstoqueDAO dao = null;
dao = new EstoqueDAO();
dao.adiciona(estoque);
JOptionPane.showMessageDialog(null,"Cadastro de estoque adicionado");
} catch (Exception e) {
System.out.println(e); }
}
}
}
Obrigadaaaaa desde já!!