boa tarde galera
to fazendo um projeto da escola
bem simples por sinal
porém estou tendo serias duvidas na parte de relacionamento com o banco de dados
testei os metodos basicos da minha classe (Alterar, excluir…)
estão funcionando porem agora to tendo q fazer alterações nescessarias para a agregação
so q naum to conseguindo se tiver como vcs me ajudarem tanto no meu código quanto por uns links
com explicações claras eu agredeço
abaixo segue o codigo!!!
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Modelo;
/**
*
* @author stharley
*/
public class Pessoa {
private String nome;
private String telefone;
private String cpf;
private int idade;
private int cod;
private Endereco endereco;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
/**
* @return the endereco
*/
public Endereco getEndereco() {
return endereco;
}
/**
* @param endereco the endereco to set
*/
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
public int getCod() {
return cod;
}
public void setCod(int cod) {
this.cod = cod;
}
}
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package Modelo;
import java.util.List;
/**
*
-
@author stharley
*/
public class Hospede extends Pessoa {
private int codigo;
private String nacionalidade;
private int qtdDia;
private int quarto;public int getQuarto() {
return quarto;
}public void setQuarto(int quarto) {
this.quarto = quarto;
}public int getCodigo() {
return codigo;
}public void setCodigo(int codigo) {
this.codigo = codigo;
}public String getNacionalidade() {
return nacionalidade;
}public void setNacionalidade(String nacionalidade) {
this.nacionalidade = nacionalidade;
}public int getQtdDia() {
return qtdDia;
}public void setQtdDia(int qtdDia) {
this.qtdDia = qtdDia;
}
}
[/code]
package Modelo;
/**
*
* @author stharley
*/
public class Endereco {
private String rua;
private String bairro;
private String complemento;
private String cidade;
private String estado;
private int cod;
public int getCod() {
return cod;
}
public void setCod(int cod) {
this.cod = cod;
}
public String getRua() {
return rua;
}
public void setRua(String rua) {
this.rua = rua;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
@Override
public String toString() {
return "Endereco{" + "rua=" + rua + "bairro=" + bairro + "complemento=" + complemento + "cidade=" + cidade + "estado=" + estado + '}';
}
}
package Persistencia;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import Modelo.Endereco;
public class EnderecoDAO {
public static List <Endereco> leTodos(){
List<Endereco> endereco =
new ArrayList<Endereco>();
try{
Connection con = GerenteDeConexao.criaConexao();
Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery("SELECT * FROM Endereco");
endereco = new ArrayList<Endereco>();
while(rs.next()){
Endereco ende = new Endereco();
ende.setCod(rs.getInt("cod_end"));
ende.setBairro(rs.getString("bairro_end"));
ende.setCidade(rs.getString("cidade_end"));
ende.setComplemento(rs.getString("comple_end"));
ende.setEstado(rs.getString("estado_end"));
ende.setRua(rs.getString("rua_end"));
endereco.add(ende);
}
}catch (SQLException e){
System.out.println("Erro ao buscar os dados " + e.getMessage());
}
return endereco;
}
public static List <Endereco> leUm(int cod){
List<Endereco> endereco =
new ArrayList<Endereco>();
try{
Connection con = GerenteDeConexao.criaConexao();
PreparedStatement stm = con.prepareStatement("SELECT * FROM Endereco where cod_end = ?");
stm.setInt(1, cod);
ResultSet rs = stm.executeQuery();
endereco = new ArrayList<Endereco>();
while(rs.next()){
Endereco ende = new Endereco();
ende.setCod(rs.getInt("cod_end"));
ende.setBairro(rs.getString("bairro_end"));
ende.setCidade(rs.getString("cidade_end"));
ende.setComplemento(rs.getString("comple_end"));
ende.setEstado(rs.getString("estado_end"));
ende.setRua(rs.getString("rua_end"));
endereco.add(ende);
}
}catch (SQLException e){
System.out.println("Erro ao buscar os dados " + e.getMessage());
}
return endereco;
}
package Persistencia;
import Modelo.Endereco;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import Modelo.Hospede;
public class HospedeDAO {
public static List <Hospede> leTodos(){
List<Hospede> hospede =
new ArrayList<Hospede>();
try{
Connection con = GerenteDeConexao.criaConexao();
Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery("SELECT * FROM Hospede");
hospede = new ArrayList<Hospede>();
while(rs.next()){
Hospede hosp = new Hospede();
hosp.setCod(rs.getInt("cod_hos"));
hosp.setNacionalidade(rs.getString("nacionalidade_hos"));
hosp.setNome(rs.getString("nome_hos"));
hosp.setCpf(rs.getString("cpf_hos"));
hosp.setIdade(rs.getInt("idade_hos"));
hosp.setTelefone(rs.getString("telefone_hos"));
hosp.setEndereco(
EnderecoDAO.leUm(rs.getInt("cod_end")));// ate onde eu entendi aki chamo o metodo da classe EnderecoDAO e ele vai fazer a busca de acordo com o parametro passado q será o codigo do endereco, acho q deu para me entender,... nessa linha ele da erro
hospede.add( hosp);
}
}catch (SQLException e){
System.out.println("Erro ao buscar os dados " + e.getMessage());
}
return hospede;
}
public static List <Hospede> leUm(int busca){
List <Hospede> hospe =
new ArrayList <Hospede>();
try{
Connection con = GerenteDeConexao.criaConexao();
PreparedStatement stm = con.prepareStatement("Select * from hospede Where cod_hos = ?");
stm.setInt(1, busca);
ResultSet rs = stm.executeQuery();
while (rs.next()){
Hospede hospede = new Hospede();
hospede = new Hospede();
hospede.setCodigo(rs.getInt("cod_hos"));
hospede.setNacionalidade(rs.getString("nacionalidade_hos"));
hospede.setNome(rs.getString("nome_hos"));
hospede.setCpf(rs.getString("cpf_hos"));
hospede.setIdade(rs.getInt("idade_hos"));
hospede.setTelefone(rs.getString("telefone_hos"));
hospe.add(hospede);
}
}catch (SQLException e){
System.out.println("Erro AO Busca Valor no Banco " + e.getMessage());
}
return hospe;
}
public static int grava(Hospede hospede){
int ret = 0;
try{
Connection con = GerenteDeConexao.criaConexao();
PreparedStatement stm = con.prepareStatement("INSERT INTO "
+ "Hospede (nome_hos, idade_hos, cpf_hos, telefone_hos, nacionalidade_hos, Quarto_Cod_quar)"
+ "VALUES (?,?,?,?,?,?)");
stm.setString(1, hospede.getNome());
stm.setInt(2, hospede.getIdade());
stm.setString(3, hospede.getCpf());
stm.setString(4, hospede.getTelefone());
stm.setString(5, hospede.getNacionalidade());
stm.setInt(6, hospede.getQuarto());
ret = stm.executeUpdate();
System.out.println("Inserida");
} catch (SQLException e){
System.out.println("Erro ao inserir os dados" + e.getMessage());
}
return ret;
}
public static int Atualizar(Hospede hospede){
int ret = 0;
try{
Connection con = GerenteDeConexao.criaConexao();
PreparedStatement stm = con.prepareStatement("UPDATE Hospede SET nome_hos = ?, idade_hos = ?, Telefone_hos = ?,"
+ "cpf_hos = ?,nacionalidade_hos = ? "
+ "WHERE cod_hos = ?");
stm.setString(1, hospede.getNome());
stm.setInt(2, hospede.getIdade());
stm.setString(3, hospede.getTelefone());
stm.setString(4, hospede.getCpf());
stm.setString(5, hospede.getNacionalidade());
stm.setInt(6, hospede.getCod());
ret = stm.executeUpdate();
System.out.println("Dados Atualizados com Sucessos");
} catch (SQLException e){
System.out.println("Erro Ao Atualizar Dados " + e.getMessage());
}
return ret;
}
public static int deleta(int cod){
int ret = 0;
try{
Connection con = GerenteDeConexao.criaConexao();
PreparedStatement stm = con.prepareStatement("DELETE FROM Hospede WHERE Cod_hos = ?");
stm.setInt(1, cod);
ret = stm.executeUpdate();
System.out.println("Campo Deletado com sucesso!");
} catch(SQLException e){
System.out.println("Erro ao Deletar Campo " + e.getMessage());
}
return ret;
}
}
galera se tiver como vcs pelo menos me explicarem como funciona
o banco com agregação ja me ajudaria bastante ou me passar alguns topicos e tutoriais
me ajudaria bastente
eté onde eu entendi
tenho o endereco q é a minha agregação (PESSOA tem ENDERECO)
o Prof. me disse q teria q ter uma tabela tanto para o HOSPEDE (herda os dados de pessoa) o q é lógico ,
e para o ENDERECO q foi onde complicou minha vida toda…
quando fosse buscar na classe HospedeDAO nele eu buscaria tambem pelo endereço
atravez dos campos em comum (chave estrangeira) nas duas tabelas e é ai q eu parei…
na teoria é facil porem na pratica naum to dando conta
se tiverem como vcs me explicarem como varei isso agredeco
//esse método é o q eu uso para buscar todos os meus hospedes cadastrados no meu banco
public static List <Hospede> leTodos(){
List<Hospede> hospede =
new ArrayList<Hospede>();
try{
Connection con = GerenteDeConexao.criaConexao();
Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery("SELECT * FROM Hospede");
hospede = new ArrayList<Hospede>();
while(rs.next()){
Hospede hosp = new Hospede();
hosp.setCod(rs.getInt("cod_hos"));
hosp.setNacionalidade(rs.getString("nacionalidade_hos"));
hosp.setNome(rs.getString("nome_hos"));
hosp.setCpf(rs.getString("cpf_hos"));
hosp.setIdade(rs.getInt("idade_hos"));
hosp.setTelefone(rs.getString("telefone_hos"));
hosp.setEndereco(
EnderecoDAO.leUm(rs.getInt("cod_end")));// aki é onde chamo o metodo do enderecoDAO q vai buscar o o endereco relativo ao hospede pela chave codigo passado;
hospede.add( hosp);
}
}catch (SQLException e){
System.out.println("Erro ao buscar os dados " + e.getMessage());
}
return hospede;
}
//esse é o metodo chamado no metodo mostrado acima
public static List <Endereco> leUm(int cod){
List<Endereco> endereco =
new ArrayList<Endereco>();
try{
Connection con = GerenteDeConexao.criaConexao();
PreparedStatement stm = con.prepareStatement("SELECT * FROM Endereco where cod_end = ?");
stm.setInt(1, cod);
ResultSet rs = stm.executeQuery();
endereco = new ArrayList<Endereco>();
while(rs.next()){
Endereco ende = new Endereco();
ende.setCod(rs.getInt("cod_end"));
ende.setBairro(rs.getString("bairro_end"));
ende.setCidade(rs.getString("cidade_end"));
ende.setComplemento(rs.getString("comple_end"));
ende.setEstado(rs.getString("estado_end"));
ende.setRua(rs.getString("rua_end"));
endereco.add(ende);
}
}catch (SQLException e){
System.out.println("Erro ao buscar os dados " + e.getMessage());
}
return endereco;
}