Problemas de Conexão ao BD MySql

4 respostas
C

Prezados amigos, sou iniciante em jsp e venho pedir ajuda para o seguinte problema: quando executo uma query no banco de dados aparece a mensagem abaixo, uso o eclipse, já adicionei o MySql Conector ao classpath, porém o erro persiste. Desde já, agradeço pela atenção dispensada e envio o código logo abaixo.

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: com.mysql.jdbc.Driver

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)

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

root cause

javax.servlet.ServletException: com.mysql.jdbc.Driver

org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)

org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)

org.apache.jsp.relatorios.feriados_jsp._jspService(org.apache.jsp.relatorios.feriados_jsp:100)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

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

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)

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

root cause

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

br.com.ect.acesso.ConnectionFactory.getConnection(ConnectionFactory.java:14)

br.com.ect.acesso.FeriadoDAO.<init>(FeriadoDAO.java:18)

br.com.ect.negocio.Feriado.<init>(Feriado.java:23)

org.apache.jsp.relatorios.feriados_jsp._jspService(org.apache.jsp.relatorios.feriados_jsp:65)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

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

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;
public class ConnectionFactory {

public static Connection getConnection() throws SQLException {

try {

Class.forName(com.mysql.jdbc.Driver);

return DriverManager.getConnection(jdbc:mysql://localhost/sidat”,“root”,“123456”);

}

catch (ClassNotFoundException e) {

throw new SQLException(e.getMessage());

}

}

}
import java.sql.Connection;

import java.sql.Date;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

import br.com.ect.negocio.Feriado;
public class FeriadoDAO {

private Connection connection;

private PreparedStatement stmt;

private ResultSet rs;
public FeriadoDAO() throws SQLException {
	connection = ConnectionFactory.getConnection();	
}

public void carregar(Feriado feriado) throws SQLException {
	stmt = connection.prepareStatement(
		"Select * from feriado " +
		"where data = ? and idMunicipio = ?");
	stmt.setDate(1, (Date) feriado.getData());
	stmt.setInt(2, feriado.municipio.getCodigo());
	rs = stmt.executeQuery();
	feriado.setData(rs.getDate("data"));

	rs.close();
	stmt.close();
	connection.close();	
}

public List&lt;Feriado&gt; getLista() throws SQLException {
	Feriado feriado = new Feriado();
	stmt = connection.prepareStatement("Select * from feriado");
	rs = stmt.executeQuery();
	List&lt;Feriado&gt; feriados = new ArrayList&lt;Feriado&gt;();
	while (rs.next()) {
		feriado.setData(rs.getDate("data"));
		feriado.setReops(rs.getString("reops"));
		if (rs.getString("tipo") == "M")
			feriado.setTipo("Municipal");
		else if (rs.getString("tipo") == "N")
			feriado.setTipo("Nacional");
		else if (rs.getString("tipo") == "E")
			feriado.setTipo("Estadual");
		feriado.municipio.carregar("",rs.getShort("idMunicipio"));
		feriados.add(feriado);
	}
	rs.close();
	stmt.close();
	connection.close();
	return feriados;
}

4 Respostas

C

Bom tarde

Analise o código que você colocou e achei alguns pontos onde o erros pode ser gerados:

1º) Dê uma olhada na versão do seu Banco Mysql e a versão do seu JAR para ver se ambos são compativeis;

2º) Na DAO quando você cria uma instância ele carega uma conexão, mas repare que a cada método que você utiliza a conexão é fechada, ou seja, caso em uma instância vc chame 2 métodos será lancado um erro na segunda chamada pois na segunda a conexão estará fechada.

Obs: No seu proximo post tente usar as tags para enviar códigos facilita a visualização.

Falou.

C

Caio, primeiramente muito obrigado pela resposta, fiz as alterações, todavia, o problema persiste, o que pode ser?

C

Boa tarde

Faça o seguinte, poste o código da classe inteira ai para eu dar uma olhada no possivelmente pode estar causando erro, e tambem coloque tratamento de exceções na classe DAO para tratar e ver oque esta acontecendo.

Falou.

C

Caio, muito obrigado pelas respostas, o erro era no arquivo jsp, porque esqueci de chamar um método, tentei dar println chamando apenas pelo objeto.

Criado 23 de julho de 2009
Ultima resposta 27 de jul. de 2009
Respostas 4
Participantes 2