Servlet com DAO e Bean

2 respostas
P

To tentando fazer um projeto com os seguintes pacotes Controller, DAO e Bean, porém aparentemente o servlet não executava a linha de código do objeto chamando o determinado método.Para facilitar iniciei tudo novamente e coloquei um servlet e uma classe para conexão e inserção de dados no banco, no mesmo pacote do servlet, porém o comportamento é o mesmo.

Estou usando o NetBeans.

Segue os dois códigos, se alguem puder me ajudar…agradeço

DAO


package Controller;




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

public class DAO {
	
	
	private Connection con = null; 
	
public void inclui(int cod,String nome,String email)
   {
       try{
    Class.forName("com.mysql.jdbc.Driver");       
    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/teste","root","root");       
    PreparedStatement stmt=con.prepareStatement("insert into teste values (?,?,?)");
                    
        stmt.setInt(1,cod);
        stmt.setString(2,nome);
        stmt.setString(3,email);
        stmt.close();
        con.close();
        System.out.println("dados gravados");
                       
    }
    catch(Exception e)
        {
         //erro1 = e.getMessage();   
        }
       
   }

	
	protected void closeConnection(Connection con,PreparedStatement pstmt,ResultSet rs){
		if (rs != null) {
			try {
				rs.close();
			} catch (SQLException e) {
			}
		}
		
		if (pstmt != null) {
			try {
			pstmt.close();
			} catch (SQLException e) {
			}
		}
		
		if (con != null) {
			try {
			con.close();
			} catch (SQLException e) {
			}
		}
	}
}

Servlet

package Controller;




import java.io.*;
import java.net.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.*;
import javax.servlet.http.*;


          


public class Cadastro extends HttpServlet {
     DAO c=new DAO();
    Connection con=null;
    
  protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
       out.print("Entrou no servlet"); 
  try {
       
              
        String nome=request.getParameter("nome");
        String email=request.getParameter("email");
        int cod=Integer.parseInt(request.getParameter("cod"));
        
       c.inclui(cod,nome,email);
        
      
    }
catch(Exception e)
{ 
out.print(e.getMessage()); 
}
    }
    
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    /** Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    /** Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Carneiro[/color][/size] :joia:

2 Respostas

C

Oi patyagm, seja bem vinda ao Portal Java.

No método inclui da classe DAO você não tá chamando o método para a inserção dos dados no banco (executeUpdate ou outro).

Tente usar o excelente debugger do eclipse para ver qual o erro.

L

olá,

no método inclui, depois de setar a 3ª variável voce deve incluir este código

int sucesso = stmt.executeUpdate();

ele retorna um inteiro, se for tudo bem te retorna 1 senão retorna 0.

faça assim para pegar

if(sucesso == 1){
//SUCESSO
}else{
//ERRO
}

Ate

Criado 15 de julho de 2007
Ultima resposta 16 de jul. de 2007
Respostas 2
Participantes 3