Ae galera estou com um problema cabuloso, no momento que faço a conexão com o banco de dados, vou explicar a cada bloco de codigo aqui:
Classe Responsável por fazer a conexão com o banco de dados
package control;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectDataBase {
public static Connection getConnect() throws SQLException{
try {
Class.forName("com.mysql.jdbc.Driver");
return DriverManager.getConnection("jdbc:mysql://localhost/database","root","");
} catch (ClassNotFoundException e) {
throw new SQLException(e.getMessage());
}
}
}
Classe Responsável por inserir cliente no banco de dados
package control;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import model.Cliente;
public class CadastraCliente {
Connection conn;
//Ao iniciar o objeto abro a conexão com o banco de dados
public CadastraCliente() throws SQLException{
this.conn = ConnectDataBase.getConnect();
}
public void adiciona(Cliente cliente) throws SQLException{
PreparedStatement stmt = this.conn.prepareStatement("insert into cad_cliente(nome_cliente,endereco,email)" +
"values (?,?,?)");
stmt.setString(1,cliente.getNome());
stmt.setString(2,cliente.getEndereco());
stmt.setString(3,cliente.getEmail());
stmt.execute();
stmt.close();
}
}
E a minha Servlet que recebe os parametros de um pagina JSP para fazer todo o processo de cadastro
package pckservlet;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.Cliente;
import control.CadastraCliente;
public class RecebeCadastrosServlet extends HttpServlet{
CadastraCliente cadastraCliente;
Cliente cliente;
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
if(request.getParameter("frmcadastro").trim().equals("cliente")){
cliente = new Cliente();
cliente.setNome(request.getParameter("nome"));
cliente.setEndereco(request.getParameter("endereco"));
cliente.setEmail(request.getParameter("email"));
try {
cadastraCliente = new CadastraCliente();
cadastraCliente.adiciona(cliente);
} catch (SQLException e) {
throw new ServletException(e);
}
}
}
}
Ao instanciar CadastraCliente(); automaticamente ele inicia a conexão com o banco de dados, e é neste momento que da o seguinte erro:
javax.servlet.ServletException: com.mysql.jdbc.Driver
pckservlet.RecebeCadastrosServlet.service(RecebeCadastrosServlet.java:41)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.sql.SQLException: com.mysql.jdbc.Driver
control.ConnectDataBase.getConnect(ConnectDataBase.java:14)
control.CadastraCliente.(CadastraCliente.java:14)
pckservlet.RecebeCadastrosServlet.service(RecebeCadastrosServlet.java:37)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
Bom Fiz um teste e peguei todo o codigo que faz a conexão com o banco de dados e coloquei dentro da minha Classe RecebeCadastrosServlet e conectou sem erros, agora quando uso ela separada como mostra acima da o erro e não entendi o porque.!!! :shock:
