Ir ao conteúdo

Posts recomendados

Postado

Boa tarde, estou desenvolvendo um programa onde seria basicamente uma wiki de animais, onde o usuário possa tanto buscar (pesquisar) animais no banco de dados como adiciona-los e etc, estou em dúvida de como posso fazer essa busca e como posso efetuar a implementação com banco de dados. Alguém poderia me ajudar? é urgente, Segue as classes:

 

Animalzinho class:

 


package com.mycompany.animais;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

public class Animalzinho {
    public String nome;
    public String locomocao;
    public String som;
    public String tipo_de_som;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }
    
    public String getLocomocao() {
        return locomocao;
    }

    public void setLocomocao(String locomocao) {
        this.locomocao = locomocao;
    }
    
      public String getSom() {
        return som;
    }

    public void setSom(String som) {
        this.som = som;
    }
    
       public String getTipo_de_som() {
        return tipo_de_som;
    }

    public void setTipo_de_som(String tipo_de_som) {
        this.tipo_de_som = tipo_de_som;
    }
    
    public String emitirSom() {
        return "SOM";
    }
    public void listarTela(){
        
        Banco db = new Banco();
        Connection conexao = db.getConexao();
                
        String sql = "SELECT * FROM Zoologico";        
        ResultSet resultados;
        try {
            
            resultados = conexao.createStatement().executeQuery(sql);
            while(resultados.next()){
                System.out.println("pk_animal = "+resultados.getString("pk_animal")+" e nome = "+resultados.getString("nome"));
            }
        
        } catch (SQLException ex) {
            System.out.println("Erro na leitura de dados do BD: "+ex.getMessage());
        }
    }
    
   //
    
    public ArrayList<Zoologico> listar(){
        
        Banco db = new Banco();
        Connection conexao = db.getConexao();
        ArrayList<Zoologico> lista = new ArrayList<Zoologico>();
                
        String sql = "SELECT * FROM Zoologico";        
        ResultSet resultados;
        
        try {
            
            resultados = conexao.createStatement().executeQuery(sql);
            Zoologico objeto;
            while(resultados.next()){
                int pk_animalZoologico = Integer.parseInt(resultados.getString("pk_animal"));
                String nomeZoologico = resultados.getString("nome");
                String locomocaoZoologico = resultados.getString("locomocao");
                String somZoologico = resultados.getString("som");
                String tipo_de_somZoologico = resultados.getString("tipo_de_som");
                objeto = new Zoologico(pk_animalZoologico, nomeZoologico, locomocaoZoologico, somZoologico, tipo_de_somZoologico);
                lista.add(objeto);                
            }
        
        } catch (SQLException ex) {
            System.out.println("Erro na leitura de dados do BD: "+ex.getMessage());
        }
        
        return lista;
    }
    
   //
    
    
    public Zoologico getZoologico(int codigo){
        Banco db = new Banco();
        Connection conexao = db.getConexao();
                
        String sql = "SELECT * FROM Zoologico WHERE pk_animal = ?";     
        PreparedStatement consulta;
        ResultSet resultado;
        
        Zoologico objeto = null;        
        try {

            consulta = conexao.prepareStatement(sql);
            consulta.setInt(1, codigo);
            resultado = consulta.executeQuery();            
            if(resultado.next()){
                
                int idZoologico = Integer.parseInt(resultado.getString("pk_animal"));
                String nomeZoologico = resultado.getString("nome");
                String locomocaoZoologico = resultado.getString("locomocao");
                String somZoologico = resultado.getString("som");
                String tipo_de_somZoologico = resultado.getString("tipo_de_som");
                objeto = new Zoologico(pk_animalZoologico, nomeZoologico, locomocaoZoologico, somZoologico, tipo_de_somZoologico);
            }            
        
        } catch (SQLException ex) {
            System.out.println("Erro na leitura de dados do BD: "+ex.getMessage());
        }
        
        return objeto;
    }
    
  //
    
    public boolean atualizar(){
        
        Banco db = new Banco();
        Connection conexao = db.getConexao();
                
        String sql = "UPDATE Zoologico SET nome = ?, locomocao = ? WHERE pk_animal = ?";     
        PreparedStatement consulta;
        boolean atualizado = false;
                
        try {
            
            consulta = conexao.prepareStatement(sql);
            consulta.setString(1, this.nome);
            consulta.setString(2, this.locomocao);
            consulta.setInt(3, this.pk_animal);
            consulta.setString(4, this.som);
            consulta.setString(5, this.tipo_de_som);
            int linhasAtualizadas = consulta.executeUpdate();
            if(linhasAtualizadas > 0) atualizado = true;
            
        } catch (SQLException ex) {
            atualizado = false;
            System.out.println("Não é possível atualizar o registro: "+ex.getMessage());
        }
        
        return atualizado;
    }
    
//
    
    public boolean excluir(){
        
        Banco db = new Banco();
        Connection conexao = db.getConexao();
                
        String sql = "DELETE FROM Zoologico WHERE pk_animal = ?";     
        PreparedStatement consulta;
        boolean excluido = false;
                
        try {
            
            consulta = conexao.prepareStatement(sql);
            consulta.setInt(1, this.pk_animal);
            int linhasExcluidas = consulta.executeUpdate();
            if( linhasExcluidas > 0) excluido = true;
            
        } catch (SQLException ex) {
            excluido = false;
            System.out.println("Não é possível excluir o registro: "+ex.getMessage());
        }
        
        return excluido;        
    }
    
  //
    
  public boolean excluirPorId(int codigo){
        
        Banco db = new Banco();
        Connection conexao = db.getConexao();
                
        String sql = "DELETE FROM Zoologico WHERE pk_animal = ?";     
        PreparedStatement consulta;
        boolean excluido = false;
                
        try {
            
            consulta = conexao.prepareStatement(sql);
            consulta.setInt(1, codigo);
            int linhasExcluidas = consulta.executeUpdate();
            if(linhasExcluidas > 0) excluido = true;            
            
        } catch (SQLException ex) {
            excluido = false;
            System.out.println("Não é possível excluir o registro: "+ex.getMessage());
        }
        
        return excluido;
        
    }
    
    //
    
    public boolean salvarRetornandoId(){
        
        Banco db = new Banco();
        Connection conexao = db.getConexao();   
        boolean retorno = false;
        
        String sql = "INSERT INTO Zoologico(nome, locomocao, som, tipo_de_som) VALUES (?,?) RETURNING pk_animal";
        PreparedStatement consulta;
        
        try {
            
            consulta = conexao.prepareStatement(sql);
            consulta.setString(1, this.nome);
            consulta.setString(2, this.locomocao);
            consulta.setString(3, this.som);
            consulta.setString(4, this.tipo_de_som);
            ResultSet resultado = consulta.executeQuery();
            if(resultado.next()){
                this.id = resultado.getInt(1);
                retorno = true;
            }
            
        } catch (SQLException ex) {            
            System.out.println("Erro ao inserir dados do animal: "+ex.getMessage());
        }
        
        return retorno;
}

 

Zoologico Class:

 

package com.mycompany.animais;

public class Zoologico {
    private Animalzinho[] jaulas;

    public Zoologico(int quantidade) {
        this.jaulas = new Animalzinho[quantidade];
    }

    public Zoologico() {
        this.jaulas = new Animalzinho[5];
    }

    public Animalzinho[] getJaulas() {
        return jaulas;
    }

    public void setJaulas(Animalzinho[] jaulas) {
        this.jaulas = jaulas;
    }

}

 

Banco Class (as informações de banco de dados são apenas exemplo):

 

package com.mycompany.animais;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Banco {
    
    private String url;
    private String porta;
    private String banco;
    private String usuario;
    private String senha;
    private String nomeBanco;
    
    public Banco(){
        
        this.usuario = "postgres";
        this.senha = "1234";
        this.nomeBanco = "banco-teste";
        this.porta = "5432";
        this.banco = "postgresql";                        
    }

    public String getPorta() {
        return porta;
    }

    public void setPorta(String porta) {
        this.porta = porta;
    }

    public String getBanco() {
        return banco;
    }

    public void setBanco(String banco) {
        this.banco = banco;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public String getNomeBanco() {
        return nomeBanco;
    }

    public void setNomeBanco(String nomeBanco) {
        this.nomeBanco = nomeBanco;
    }       
    
    public Connection getConexao(){
        
        Connection conexao = null;        
        
        try {
            this.url = "jdbc:"+this.banco+"://localhost:"+this.porta+"/"+this.nomeBanco;
            conexao = DriverManager.getConnection(this.url, this.usuario, this.senha);
            
        } catch (SQLException ex) {
            System.out.println("Problemas na conexão: "+ex.getMessage());            
            
        }
        
        return conexao;
    }
    
    
    
}

 

Teste Zoologico Class:

 

package com.mycompany.animais;

import javax.swing.JOptionPane;


public class TesteZoologico {

    public static void main(String[] args) {

        int quantidade = 10;

        Animalzinho[] jaulas = new Animalzinho[quantidade];


        for (int i = 0; i < quantidade; i++) {
            String nome = JOptionPane.showInputDialog("qual o nome do animal?");
 

            }

        }

     
        Zoologico zoologico = new Zoologico(quantidade);
     
        zoologico.setJaulas(jaulas);

        for (Animalzinho animalzinho : zoologico.getJaulas()) {

            JOptionPane.showMessageDialog(null, animalzinho.emitirSom());
        }

    }

}

 

 

no banco de dados, está assim minha tabela:

 

image.png.51387744daad818c327d675e26e54f7b.png

 

 

Postado

É um projeto um pouco complexo. Veja se isso ajuda, não está completo, mas a demonstração básica está funcionando.

 

Algumas dicas:

  • Projete bem a camada de modelagem do programa, ela é uma das mais importantes e é o que determina se o projeto está ou não fácil de manter.
  • Separe as classes de modelagem (classes que representam coisas do mundo real) das classes de banco de dados (classes que operam nas tabelas do banco de dados). Elas são coisas diferentes com propósitos diferentes.
  • Mantenha a classe o mais simples possível. Uma classe só deve fazer o que se propõe a fazer, nada mais, nada menos. Isso ajuda no desenvolvimento e manutenção do código.
  • A lógica acima se aplica aos métodos também, procure criar métodos que executem uma tarefa bem específica, sem ficar inflando-o com operações que não sejam de sua responsabilidade.

Zoologico.zip

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...