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

listar dados do my sql e uma jsp

Nao consigo listar os dados do banco. So consigo adicionar gostaria de saber se algum problema no dao?

dao

package br.com.caelum.game.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.caelum.game.ConnectionFactory;
import br.com.caelum.game.modelo.Fabricante;

public class JdbcFabricanteDAO {

    private final Connection connection;

    public JdbcFabricanteDAO() {
        try {
            this.connection = new ConnectionFactory().getConnection();

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

    public void adiciona(Fabricante fabricante) {
        String sql = " insert into fabricantes (nome, email) values (?,?)";
        PreparedStatement stmt;

        try {
            stmt = connection.prepareStatement(sql);
            stmt.setString(1, fabricante.getNome());
            stmt.setString(2, fabricante.getEmail());
            stmt.execute();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

    public List<Fabricante> lista() {

        try {
            List<Fabricante> fabricantes = new ArrayList<Fabricante>();

            PreparedStatement stmt = this.connection
                    .prepareStatement("SELECT * FROM fabricantes");
            ResultSet rs = stmt.executeQuery();

            while (rs.next()) {
                fabricantes.add(populaFabricante(rs));
            }


            rs.close();
            stmt.close();

            System.out.println(stmt);

            return fabricantes;

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

    public Fabricante buscaPorId(Long id) {

        if (id == null) {
            throw new IllegalStateException("Id da fabricante não deve ser nula.");
        }

        try {
            PreparedStatement stmt = this.connection
                    .prepareStatement("select * from fabricantes where id = ?");
            stmt.setLong(1, id);

            ResultSet rs = stmt.executeQuery();

            if (rs.next()) {
                return populaFabricante(rs);
            }

            rs.close();
            stmt.close();

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

    private Fabricante populaFabricante(ResultSet rs) throws SQLException {

        Fabricante fabricante = new Fabricante();

        fabricante.setId(rs.getLong("id"));
        fabricante.setNome(rs.getString("nome"));
        fabricante.setEmail(rs.getString("email"));

        return fabricante;

    }

    public void remove(Fabricante fabricante) {

        if (fabricante.getId() == null) {
            throw new IllegalStateException("id do fabricante não encontrado");
        }

        String sql = "delete from fabricantes where id = ?";
        PreparedStatement stmt;

        try {
            stmt = connection.prepareStatement(sql);
            stmt.setLong(1, fabricante.getId());
            stmt.execute();
        } catch (SQLException e) {

            throw new RuntimeException(e);

        }

    }

    public void altera(Fabricante fabricante) {
        String sql = "update fabricantes set nome = ?, email = ? where id = ?";
        PreparedStatement stmt;
        try {
            stmt = connection.prepareStatement(sql);
            stmt.setString(1, fabricante.getNome());
            stmt.setString(2, fabricante.getEmail());
            stmt.setLong(3, fabricante.getId());
            stmt.execute();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }


}

controller

package br.com.caelum.game.controller;

import java.util.List;

import javax.validation.Valid;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;

import br.com.caelum.game.dao.JdbcFabricanteDAO;
import br.com.caelum.game.modelo.Fabricante;

@Controller
public class FabricantesController {

    @RequestMapping("novoFabricante")
    public String form(){
        return "fabricante/formulario";
    }

    @RequestMapping("adicionaFabricante")
    public String adiciona(@Valid Fabricante fabricante, BindingResult result){
        if(result.hasFieldErrors("nome")){
            return "fabricante/formulario";
        }
        JdbcFabricanteDAO dao = new JdbcFabricanteDAO();
        dao.adiciona(fabricante);
        return "fabricante/formulario";
    }

    @RequestMapping("listaFabricante")
    public String lista(Model model){
        JdbcFabricanteDAO dao = new JdbcFabricanteDAO();
        model.addAttribute("fabricantes", dao.lista());
        List<Fabricante> fabricante = dao.lista();
        return "fabricante/lista";
    }

    @RequestMapping("removeFabricante")
    public String remove(Fabricante fabricante){
        JdbcFabricanteDAO dao = new JdbcFabricanteDAO();
        dao.remove(fabricante);
        return "redirect:listaFabricante";
    }

    @RequestMapping("mostraFabricante")
    public String mostra(Long id, Model model){
        JdbcFabricanteDAO dao = new JdbcFabricanteDAO();
        model.addAttribute("fabricante", dao.buscaPorId(id));
        return "fabricante/mostra";
    }

    @RequestMapping("alteraTarefa")
    public String altera(Fabricante fabricante){
        JdbcFabricanteDAO dao  = new JdbcFabricanteDAO();
        dao.altera(fabricante);
        return "redirect:listaFabricante";
        }

}

jsp

<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<html>
<body>
    <h3>Altera Fabricante - ${fabricante.id}</h3>
    <form action="alteraFabricante" method="post">

        <input type="hidden" name="id" value="${tarefa.id}" />
         <label>Nome Completo: <input type="text" name="nome" /></label> 
         <br /> 
         <label>E-mail: <input type="text" name="email" /></label> 
         <br /> 
         <input type="submit" value="Alterar">
    </form>
</body>
</html>


<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

<html>
<body>
    <a href="novoFabricante">Inserir novo fabricante</a>

    <br />
    <br />

    <table border="5">
        <tr>
            <th>Id</th>
            <th>Nome</th>
            <th>E-mail</th>
        </tr>
        <c:forEach items="${fabricantes}" var="Fabricante">
        <tr>
            <td>${fabricante.id}</td>
            <td>${fabricante.nome}</td>
            <td>${fabricante.email}</td>
        </tr>
        <td><a href="removeFabricante?id=${fabricante.id}">Remover</a></td>
        <td><a href="alteraFabricante?id=${fabricante.id}">Alterar</a></td>
        </c:forEach>
    </table>

</body>
</html>


<%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<html>
    <body>
        <h3>Adicionar Fabricantes</h3>        
                <form action="adicionaFabricante" method="post">            
                <label>Nome Completo: <input type="text" name="nome"/> </label>
                    <br/>
                <label>E-mail: <input type="text" name="email"/> </label>
                    <br/>
                <form:errors path="fabricante.nome" cssStyle="color:red"/>
                    <br/>
                <input type="submit" value="Adicionar">
            </form>
    </body>
</html>

aparentemente não da erro so não aparece os dados na tela.

  • Que erro dá no log?

    Roger75   14 de mai de 2013
  • realmente existem dados gravados no banco...

    Cristian Urbainski   15 de mai de 2013
  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!

1 resposta

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