1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Select com Struts 2

Boa tarde, GUJ. Estou estudando Java Web através da apostila FJ-21 da Caelum e decidi implementar um pequeno projeto com campos de seleção seguindo o mesmo padrão dos exercícios propostos ao longo do curso. O problema é que não existe nenhum exemplo de select na apostila, e eu considero essa funcionalidade muito importante para aplicações futuras. Então vou buscar ajuda aqui mesmo.

Seguem abaixo as classes.

TipoDAO.java

public class TipoDAO {
private final Connection connection;

    public TipoDAO() {
        try {
            this.connection = new ConnectionFactory().getConnection();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

    public void adiciona(Tipo tipo){
        String sql= "insert into tipo (descricao) values (?)";
        PreparedStatement stmt;
        try{
            stmt= connection.prepareStatement(sql);
            stmt.setString(1, tipo.getDescricao());
            stmt.execute();
            System.out.println("Inserido com sucesso!");

                stmt.close();  
                connection.close(); 
                System.out.println("Conexão com o banco fechada.");


        }catch(SQLException e){
            throw new RuntimeException(e);
        }
    }

    public List<Tipo> getTipo() throws SQLException {  
        String sql = "select * from tipo";  

        PreparedStatement stm = connection.prepareStatement(sql);  

        ResultSet rs = stm.executeQuery();  

        List<Tipo> tipos = new ArrayList<Tipo>();  
        while (rs.next()) {  
            Tipo tipo = new Tipo();  
            tipo.setId(rs.getInt("idtipo"));  
            tipo.setDescricao(rs.getString("descricao"));  

            tipos.add(tipo);  
        }  
        rs.close();  
        connection.close();  
        stm.close();  
        return tipos;  
    }  


}

EquipamentoDAO.java

public class EquipamentoDAO {
    private final Connection connection;

    public EquipamentoDAO() {
        try {
            this.connection = new ConnectionFactory().getConnection();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

    //Adicionar
    public void adiciona(Equipamento equipamento){
        String sql= "insert into equipamento (nome, tipo_idtipo) values (?,?)";
        PreparedStatement stmt;
        try{
            stmt= connection.prepareStatement(sql);
            stmt.setString(1, equipamento.getNome());
            stmt.setLong(3, equipamento.getTipo().getId());
            stmt.execute();
        }catch(SQLException e){
            throw new RuntimeException(e);
        }
    }
}

Tipo.java

public class Tipo {
    private int id;
    private String descricao;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getDescricao() {
        return descricao;
    }
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

}

Equipamento.java

public class Equipamento {
    private int id;
    private String nome;
    private Tipo tipo;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public Tipo getTipo() {
        return tipo;
    }
    public void setTipo(Tipo tipo) {
        this.tipo = tipo;
    }

}

AdicionaEquipamentosAction.java

@ParentPackage("default")
public class AdicionaEquipamentosAction extends ActionSupport {
    private Equipamento equipamento;
    private List<Tipo> tipos;


    @Action(value="adicionaEquipamento", results={
            @Result(name="ok", location="equipamento-adicionado.jsp"),
            @Result(name="input", location="formulario-equipamentos.jsp")
    })

    public String execute() throws SQLException{
        new EquipamentoDAO().adiciona(equipamento);  
        return "ok";
    }

    public Equipamento getEquipamento() {
        return equipamento;
    }
    public void setEquipamento(Equipamento equipamento) {
        this.equipamento = equipamento;
    }

}

P.S.: Cada equipamento pertence a um determinado tipo, cuja tabela já possui alguns dados que eu inseri anteriormente. Gostaria de carregá-los no select do cadastro de equipamentos e salvá-los na tabela 'equipamento' (tipo_idtipo).

Dúvidas:

  • A lista deve ficar na classe TipoDAO mesmo? Está correto da maneira que eu fiz?

  • Eu devo criar uma nova action para o select ou devo alterar o código existente dentro do método execute() para os valores aparecerem no formulário?

Se possível, citem exemplos (simples).

Obrigado.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags struts java dao ou faça a sua própria pergunta.