Como carregar os dados da DAO na JSP?

2 respostas
Sergiorsilva

Olá pessoal, por favor preciso de ajuda. Sou novato e preciso enviar os dados da consulta da minha DAO para minha página JSP.

Essa é minha DAO.

package dao.implem;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import model.DomainObject;
import model.Empresa;

/**
 *
 * @author Sérgio
 */
public class EmpresaDAO extends AbstractDAO {

    public EmpresaDAO() {
        conectar();
    }

    @Override
    public void inserir(DomainObject obj) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void alterar(DomainObject obj) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void deletar(DomainObject obj) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public List<DomainObject> consultar(DomainObject obj) {
        Empresa empresa = (Empresa) obj;

        String sql = "SELECT ID, RAZAO_SOCIAL FROM EMPRESA";

        if (empresa == null) {
            return executar(sql);
        } else if (empresa != null && empresa.getId() != 0 && empresa.getRazao_social() == null) {
            return consultar(empresa.getId());
        } else if (empresa != null && empresa.getId() != 0 && empresa.getRazao_social() == null) {
            return consultar(empresa.getId(), empresa.getRazao_social());
        } else {
            return consultar(empresa.getRazao_social());
        }

    }

    private List<DomainObject> consultar(int id) {
        String sql = "SELECT ID_EMPRESA, RAZAO_SOCIAL FROM EMPRESA WHERE ID_EMPRESA=" + id;
        return executar(sql);
    }

    private List<DomainObject> consultar(String razao_social) {
        String sql = "SELECT ID_EMPRESA, RAZAO_SOCIAL FROM EMPRESA WHERE RAZAO_SOCIAL LIKE '%" + razao_social + "%'";
        return executar(sql);
    }

    private List<DomainObject> consultar(int id, String razao_social) {
        String sql = "SELECT ID_EMPRESA, RAZAO_SOCIAL FROM EMPRESA WHERE ID_EMPRESA=" + id
                + "AND RAZAO_SOCIAL LIKE '%" + razao_social + "%'";
        return executar(sql);
    }

    List<DomainObject> executar(String sql) {

        PreparedStatement pstmt;

        List<DomainObject> listaEmpresa = null;

        try {

            pstmt = conexao.prepareStatement(sql);
            ResultSet rs = pstmt.executeQuery();
            listaEmpresa = new ArrayList<DomainObject>();
            while (rs.next()) {
                Empresa empresa = new Empresa();
                empresa.setId(rs.getInt(1));
                empresa.setRazao_social(rs.getString(2));
                listaEmpresa.add(empresa);

            }

        } catch (SQLException e) {
            System.out.println("Erro na conexão" + e);
        }

        return listaEmpresa;

    }
}

Minha Classe abstrata

package dao.implem;

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

/**
 *
 * @author Sérgio
 */
public abstract class AbstractDAO implements IDAO {

    private final String URL = "jdbc:mysql://localhost:3306/vagas";
    private final String DRIVER = "com.mysql.jdbc.Driver";
    private final String USER = "usuario";
    private final String PASS = "senha";
    protected Connection conexao;

    protected void conectar() {

        try {
            Class.forName(DRIVER);
            System.out.println("Driver carregado com sucesso");

            conexao = DriverManager.getConnection(URL, USER, PASS);

        } catch (ClassNotFoundException erro_driver) {
            System.out.println("Erro ao carregar driver " + erro_driver);
        } catch (SQLException erro_sql) {
            System.out.println("Erro na conexão " + erro_sql);
        }
    }
}

Interface da classe Abstrata

package dao;

import java.util.List;
import model.DomainObject;

/**
 *
 * @author Sérgio
 */

public interface IDAO {

    public void inserir(DomainObject obj);
    public void alterar(DomainObject obj);
    public void deletar(DomainObject obj);
    public  List<DomainObject> consultar(DomainObject obj);

}

e por fim a JSP, segue o que eu estou tentando fazer:

<body>

        <%
            EmpresaDAO empresaDAO = new EmpresaDAO();
            ArrayList<DomainObject> lista_id = new ArrayList();
            lista_id = empresaDAO.consultar(obj);
            for (DomainObject d: lista_id) {
        %>

        <div id="formulario_vaga">
            <div>
                <span>
                    <h1>Resultado da Consulta de Empresa</h1>
                     <h1><%= ((Empresa)d).getRazao_social() %></h1>
                     
                     <% }%>
                </span>
            </div> ......

O NetBeans só aponta erro na JSP no parametro obj do método consultar na empresaDAO, o que poderia ser?

2 Respostas

drsmachado

Qual o erro?
O parâmetro obj é instanciado com qual valor?

Sergiorsilva

Olá drsmachado,

em outra JSP através de um formulário eu passo um valor numerico que é o id da tabela empresa no banco, mando para uma servlet, converto para inteiro e passo para minha classe empresa que contém somente os atributos da classe e os métodos get e set.

Criado 11 de novembro de 2010
Ultima resposta 11 de nov. de 2010
Respostas 2
Participantes 2