Opa, to fritando a cabeça aqui com um submit, se alguém puder me ajudar.
OBS: sobre os comentários, sei que tem muitos, mas é porque to aprendendo e gosto de comentar em códigos didáticos kkkk
Connector:
package com.fornecedor.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Connector {
public static Connection getConnection() { //método estático, não preciso instanciar objeto para invocá-lo
Connection con = null; // Variável de conexão ao BD.
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/fornecedor?useTimezone=true&serverTimezone=America/Sao_Paulo", "root", "Carbolitium@300");
/*
* No comando acima, estamos definindo o valor de con para fechar conexão com o Banco de Dados.
* O método getConnection está dentro da classe DriverManager
* No caminho do banco de dados estamos especificando a TimeZone também
*/
System.out.println("Conectado com sucesso!");
} catch(SQLException e) {
System.out.println("Não foi possível conectar ao BD.\n Mensagem: " + e.getMessage());
}
return con; // caso dê certo, retorna con com valor o BD, caso não dê certo, retorna con com valor NULL.
}
}
* Foi testada a conexão, está ok.
Método cadastrar no DAO:
package com.fornecedor.jdbc;
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 com.fornecedor.entidades.Comprador;
public class CompradorDAO {
//comando para montar o SQL
private Connection con = Connector.getConnection();
//create
public void cadastrar(Comprador comprador) {
String sql = "INSERT INTO COMPRADOR(nome, sobrenome, ramal, login, senha) values (?,?,?,?,?)";
//construção preparedstatement com SQL
try {
PreparedStatement preparador = con.prepareStatement(sql);
preparador.setString(1, comprador.getNome());
preparador.setString(2, comprador.getSobrenome());
preparador.setString(3, comprador.getRamal());
preparador.setString(4, comprador.getLogin());
preparador.setString(5, comprador.getSenha());
//injeta o SQL
preparador.execute();
//encerra o preparador
preparador.close();
System.out.println("Cadastrado com sucesso!");
} catch (SQLException e) {
System.out.println("Mensagem: " + e.getMessage());
}
}
* Foi testado o método cadastrar como Java Application, está ok.
Formulário:
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Cadastre seu usuário!</title>
</head>
<body>
<form action="compradorcontroller.do" method="post">
<label>Nome: </label>
<input type="text" name="txtnome" value="" size="20" maxlength="30"/>
<label>Sobrenome: </label>
<input type="text" name="txtsobrenome" value="" size="20" maxlength="40"/>
<label>Ramal: </label>
<input type="text" name="txtramal" value="" size="20" maxlength="4">
<label>Login: </label>
<input type="text" name="txtlogin" value="" size="20" maxlength="20">
<label>Senha: </label>
<input type="password" name="txtsenha" value="" maxlength="6"/>
<input type="submit" value="Salvar"/>
</form>
</body>
</html>
Controller:
package com.fornecedor.controller;
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 com.fornecedor.entidades.Comprador;
import com.fornecedor.jdbc.CompradorDAO;
@WebServlet("/compradorcontroller.do")
public class CompradorController extends HttpServlet {
private static final long serialVersionUID = 1L;
public CompradorController() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Chamando metodo POST");
//Recebe os dados pela tela
String nome = request.getParameter("txtnome");
String sobrenome = request.getParameter("txtsobrenome");
String ramal = request.getParameter("txtramal");
String login = request.getParameter("txtlogin");
String senha = request.getParameter("txtsenha");
//seta os valores nas variáveis privadas da classe comprador, dentro do objeto comprador
Comprador comprador = new Comprador();
comprador.setNome(nome);
comprador.setSobrenome(sobrenome);
comprador.setRamal(ramal);
comprador.setLogin(login);
comprador.setSenha(senha);
//executa o método de cadastrar
CompradorDAO compradorDAO = new CompradorDAO();
compradorDAO.cadastrar(comprador);
//resposta após o submit
PrintWriter saida = response.getWriter();
saida.println("Cadastrado com sucesso!");
}
}