Problemas com JDBC

12 respostas
F

To tendo um problema, eu fazendo um dynamic web, mas quando rodo a aplicação ela da o seguinte erro:

Erro no Conection, muito estranho:

java.sql.SQLException: com.mysql.jdbc.Driver

at model.Conection.conecta(Conection.java:18)

at DAO.UsuarioDAO.(UsuarioDAO.java:12)

at control.Control.doGet(Control.java:44)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)

at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)

at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)

at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)

at java.lang.Thread.run(Thread.java:595)

Mas eu consigo rodar normalmente fazendo em main void (run as aplication), mas quando rodo atravez do servlet da o erro acima.

12 Respostas

ramilani12

Vc realizou o import com.mysql.jdbc.Driver dessa classe no seu Servlet?
Bom nao basta perguntar adicionou do driver do mysql no CLASSPATH? ou na lib do seu projeto?

fujioka

Verifique verificou o driver de conexão?..?

furutani

Olá

Adicionou o jar do driver do MySQL no classpath da aplicação?

F

oi legal,

eu adicionei o jar no class path do projeto, to usando o eclipse, fui la em external jar e adicionei.

Po isso eu não fiz no servlet, mas fiz na classe que está instanciando a conexão com o banco, eu tenho que adicionar no servelet tambem, mesmo assim?

valeu pelas respostas.

F

Bom eu adicionei agora e testei denovo, não deu certo, vou colocar aqui os codigos pra ver se alguem da uma luz.

conexao
package model;

import java.sql.*;

public class Conection {

private static final String URL = "jdbc:mysql://localhost/nh";
private static final String DRIVER = "com.mysql.jdbc.Driver";
private static final String USUARIO = "root";
private static final String SENHA = "admin";

public static Connection conecta() throws SQLException {
	try {
		Class.forName(DRIVER);
		return DriverManager.getConnection(URL,USUARIO,SENHA);
		} catch (ClassNotFoundException e) {
			System.out.println("Erro no Conection, muito estranho:");
			throw new SQLException(e.getMessage());
		}
	}

}
servlet
package control;

import java.io.IOException;
import java.sql.*;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.*;
import DAO.*;

 public class Control extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {

	public Control() {
		super();
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		try{
		String cpf = request.getParameter("txtcpf");
		String nome = request.getParameter("txtnome");
		String datanasc = request.getParameter("txtdatanasc");
		int rg = Integer.parseInt(request.getParameter("txtrg"));
		String sexo = request.getParameter("txtsexo");
		String email = request.getParameter("txtemail");
		String login = request.getParameter("txtlogin");
		String senha = request.getParameter("txtsenha");


		Usuario usuario = new Usuario();
		usuario.setCpf(Integer.parseInt(cpf));
		usuario.setNome(nome);
		usuario.setDataNasc(datanasc);
		usuario.setRg(rg);
		usuario.setSexo(sexo);
		usuario.setEmail(email);
		usuario.setLogin(login);
		usuario.setSenha(senha);

		//QualquerPorra porra = new QualquerPorra(nome, datanasc, rg, sexo);

	    	UsuarioDAO dao = new UsuarioDAO();
	        dao.incluir(usuario);

	    }
	    catch(SQLException e){
	    	e.printStackTrace();//Aqui vc trata a exceção do jeito que vc achar melhor
	    }
			//System.out.println(datanasc);


	    RequestDispatcher dispacho = request.getRequestDispatcher("main.jsp");
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}
}
jsp (interface)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Teste</title>
</head>
<body>
	<form action="Control" method="get">
		<h5>Cpf</h5>
	<input type="text" name="txtcpf" value="" size="30">
		<h5>Nome</h5>
	<input type="text" name="txtnome" value="fe" size="30">
		<h5>Data de Nascimento</h5>
	<input type="text" name="txtdatanasc" value="121212" size="30">
		<h5>Identidade</h5>
	<input type="text" name="txtrg" value="1212" size="30">
		<h5>Sexo</h5>
	<input type="text" name="txtsexo" value="fe" size="30">
		<h5>email</h5>
	<input type="text" name="txtemail" value="fe@" size="30">
		<h5>login</h5>
	<input type="text" name="txtlogin" value="fefe" size="30">
		<h5>senha</h5>
	<input type="text" name="txtsenha" value="fefefe" size="30"><br><br>
	<input type="submit" value="Incluir" size="10">
	</form>
	<% if(request.getParameter("name") == null){
		out.println("Se fudeu... tem que se cadastrar");
	}%>
	
</body>
</html>
classe usuario
package model;

import java.util.List;
import model.Telefone;
import java.util.Vector;

public class Usuario {
	private String nome;
	private String dataNasc;
	private int rg;
	private int cpf;
	private String sexo;
	private String email;
	private String login;
	private String senha;

	public void Incluir() {
		throw new UnsupportedOperationException();
	}

	public void Alterar() {
		throw new UnsupportedOperationException();
	}

	public void Excluir() {
		throw new UnsupportedOperationException();
	}

	public void Pesquisar() {
		throw new UnsupportedOperationException();
	}

	public int getCpf() {
		return cpf;
	}

	public void setCpf(int cpf) {
		this.cpf = cpf;
	}

	public String getDataNasc() {
		return dataNasc;
	}

	public void setDataNasc(String dataNasc) {
		this.dataNasc = dataNasc;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public int getRg() {
		return rg;
	}

	public void setRg(int rg) {
		this.rg = rg;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public String getSexo() {
		return sexo;
	}

	public void setSexo(String sexo) {
		this.sexo = sexo;
	}

}
UsuarioDAO
package DAO;

import model.*;
import java.sql.*;

public class UsuarioDAO {

// a conexão com o banco de dados
private Connection connection;

public UsuarioDAO() throws SQLException {
	this.connection = Conection.conecta();
	System.out.println("Ta conectando no DAO.");
}

	public void incluir(Usuario usuario) throws SQLException {

		// prepared statement para inserção
		PreparedStatement stmt = this.connection.prepareStatement("insert into usuario (cpf,nome,dataNasc,rg,sexo,email,login,senha) values (?, ?, ?, ?, ?, ?, ?, ?)");

		// seta os valores
		stmt.setInt(1,usuario.getCpf());
		stmt.setString(2,usuario.getNome());
		stmt.setString(3,usuario.getDataNasc());
		stmt.setInt(4,usuario.getRg());
		stmt.setString(5,usuario.getSexo());
		stmt.setString(6,usuario.getEmail());
		stmt.setString(7,usuario.getLogin());
		stmt.setString(8,usuario.getSenha());
		// executa
		stmt.execute();
		stmt.close();
	}
}

VALEUS

davidbuzatto

No seu catch da SQLException, adiciona mais uma linha:

System.out.println( "Erro do banco: " + e.getMessage() );

Assim vc vai conseguir ver o que está acontecendo realmente (ou pelo menos quase). Ai vai ficar mais fácil vc resolver. As vezes é problema com nome de alguma coluna da tabela ou erro na sintaxe SQL.

Até mais!

F

davidbuzatto:
No seu catch da SQLException, adiciona mais uma linha:

System.out.println( "Erro do banco: " + e.getMessage() );

Assim vc vai conseguir ver o que está acontecendo realmente (ou pelo menos quase). Ai vai ficar mais fácil vc resolver. As vezes é problema com nome de alguma coluna da tabela ou erro na sintaxe SQL.

Até mais!


oi então, eu fiz o que vc falou, e o console retorna o seguinte:

Erro do banco: com.mysql.jdbc.Driver

Uma dúvida que eu tenho, eu adicionei a jar do driver (j/connector) no projeto no eclipse, atravez do class path, mas não coloquei ela na pasta do java. É necessário que eu coloque na pasta também?

ramilani12

Veja se o driver esta nesse diretorio WEB-INF/lib , caso nao coloque-o

F

diz isso, mas continua não funcionando :cry:

F

alguém da mais alguma idéia, to travado nessa parada :frowning:

F

AE seguinte consegui passar do erro, mas agora recebo esse outro erro aqui.
o mais estranho e que quando rodo a aplicação sem utilizar servlet, so pra testar, funciona.

java.lang.NullPointerException

DAO.UsuarioDAO.incluir(UsuarioDAO.java:23)

control.Control.doGet(Control.java:42)

javax.servlet.http.HttpServlet.service(HttpServlet.java:690)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
ramilani12

Verifique a linha 23 da classe UsuarioDAO o prq que esta lançando NullPointerException:

Uma das Causas possiveis:

:arrow: objeto esta null

Criado 20 de outubro de 2007
Ultima resposta 23 de out. de 2007
Respostas 12
Participantes 5