Enviar dados pro BD - SERVLET

1 resposta
javamysqlservlet
D

Aprender sozinho pela internet é bem difícil, por isso peço a ajuda de vcs… :smiley:

To tentando fazer o seguinte: Efetuar a leitura dos dados cadastrados no BD phpmyadmin
através de um servlet e salvar os dados no BD;
NESSE CASO, QUERO DAR SELECT E INSERT.
Tentei fazer com o insert, masn ão sei que tem de errado.

**Esse é meu html pra enviar os dados:**

Tenho todas essas classes funcionando corretamente sem ser no servlet: Contato, ConexaoFaxtory, ContatoDao e ContatoTeste;
O PROBLEMA É QUE EU INSIRO OS DADOS E NÃO ME APARACE A MSG DE ENVIO QUE COLOQUEI NO doPost, E NEM RECEBO OS NOVOS DADOS NO MEU BD; E QUANDO EU CLICO EM CADASTRAR, FICA TUDO BRANCO;

Minha classe Servlet:

package servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import negocio.Contato;
import repositorio.ContatoDao;

/**

  • Servlet implementation class AdicionaContatoServlet
    
    */
    
    @WebServlet("/cliente") //mudado
    
    public class AdicionaContatoServlet extends HttpServlet {
    
    private static final long serialVersionUID = 1L;
    

    /**

    • @see HttpServlet#HttpServlet()
      */
      public AdicionaContatoServlet() {
      super();
      // TODO Auto-generated constructor stub
      }

    /**

    • @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
      */
      protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      // TODO Auto-generated method stub

    }

    /**

    • @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
      
      */
      
      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      
      // TODO Auto-generated method stub
      

      response.getWriter().append("Served at: ").append(request.getContextPath());
      }

    /**

    • @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
      
      */
      
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      
      // TODO Auto-generated method stub
      
      PrintWriter out = response.getWriter();
      
      String nome = request.getParameter(nome);
      
      String email = request.getParameter(email);
      
      int idade = Integer.parseInt(request.getParameter(idade));
      

      Contato contato = new Contato();

      contato.setNome(nome);
      
      contato.setEmail(email);
      
      contato.setIdade(idade);
      

      ContatoDao dao = new ContatoDao();

      dao.inserir(contato);

      out.println("");
      
      out.println("");
      
      out.println(Cadastro Realizado com Sucesso!);
      
      out.println("");
      
      out.println("");
      

      response.getWriter().print("Metodo POST enviou o email : " + email);

      doGet(request, response);
      }

}

**Minha ContatoDao: **
OBS: ESSA CLASSE FUNCIONA PERFEITAMENTE;

package repositorio;

import java.sql.*;

import java.util.*;

import javax.swing.JOptionPane;

import com.mysql.jdbc.PreparedStatement;

import negocio.Contato;

public class ContatoDao {

private Connection con = null;

public ContatoDao() {
	this.con = new ConexaoFactory().getConnection();
}

public void inserir(Contato contato) {
	String sql = "INSERT INTO cliente(nome,email,idade) VALUES(?,?,?)";


try {
	PreparedStatement stmt = (PreparedStatement) con.prepareStatement(sql);
	
	stmt.setString(1, contato.getNome());
	stmt.setString(2, contato.getEmail());
	stmt.setInt(3, contato.getIdade());
	
	stmt.execute();
	stmt.close();
	
	JOptionPane.showMessageDialog(null, "Gravado com sucesso!");
	
}catch (SQLException e) {
	//throw new RuntimeException(e);
	JOptionPane.showMessageDialog(null, "Erro ao tentar gravar no BD"+e);
}

}//Fim adiciona

public void atualizar(Contato contato) {
	
	String sql = "UPDATE cliente SET nome = ?,email = ?,idade = ? WHERE id = ?";


try {
	PreparedStatement stmt = (PreparedStatement) con.prepareStatement(sql);
	
	stmt.setString(1, contato.getNome());
	stmt.setString(2, contato.getEmail());
	stmt.setInt(3, contato.getIdade());
	stmt.setInt(4, contato.getId());
	stmt.executeUpdate();
	stmt.close();
	
	JOptionPane.showMessageDialog(null, "Atualizado com sucesso!");
	System.out.println("Atualizado com Sucesso!");
	
}catch (SQLException e) {
	//throw new RuntimeException(e);
	JOptionPane.showMessageDialog(null, "Erro ao tentar atualizar no BD"+e);
}

}//Fim atualiza

///////////////////////////////
public void excluir(Contato contato) {
	String sql = "DELETE FROM cliente WHERE id = ?";


try {
	PreparedStatement stmt = (PreparedStatement) con.prepareStatement(sql);
	
	//stmt.setString(1, contato.getNome());
	//stmt.setString(2, contato.getEmail());
	//stmt.setInt(3, contato.getIdade());
	stmt.setInt(1, contato.getId());
	stmt.executeUpdate();
	stmt.close();
	
	JOptionPane.showMessageDialog(null, "Excluído com sucesso!");
	System.out.println("Excluído com Sucesso!");
	
}catch (SQLException e) {
	//throw new RuntimeException(e);
	JOptionPane.showMessageDialog(null, "Erro ao tentar excluir dado no BD"+e);
}

}//Fim exclui


public List<Contato> getLista() {
	
	List<Contato> contatos = new ArrayList<Contato>();
	String sql = "SELECT * FROM cliente";
	
	try {
		PreparedStatement stmt = (PreparedStatement) con.prepareStatement(sql);
		ResultSet rs =  stmt.executeQuery();
		
		

		while(rs.next()) {
			Contato contato = new Contato();
			
			
			contato.setNome(rs.getString("nome"));
			contato.setEmail(rs.getString("email"));
			contato.setIdade(rs.getInt("idade"));
			contato.setId(rs.getInt("id"));
			
			contatos.add(contato);
		}
		rs.close();
		stmt.close();

		return contatos;


		
	}catch(SQLException e) {
		JOptionPane.showMessageDialog(null, "Erro ao dar Select o BD\n"+e);
		throw new RuntimeException(e);
	}
	
	//return contatos;


}

}//Fim ContatoDao

1 Resposta

V

Olá, Douglas,

Você reparou que está inserindo apenas o nome no html?
Provavelmente dará nullpoint, pois as propriedades não foram preenchidas.

Criado 23 de setembro de 2017
Ultima resposta 25 de set. de 2017
Respostas 1
Participantes 2