Solucionado (ver solução)
Solucionado
(ver solução)
12
respostas

Problema ao connectar ao banco.

Estou tentando conectar o banco e está dando esse erro: "java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/cartorio"

segue o códgo que estou usado.

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // TODO Auto-generated method stub
            try {
                Connection c = new Conection().getCon();
                nascimentoDAO nDao = new nascimentoDAO();
                ResultSet rs = nDao.selecionaTudo(c);



                req.setAttribute("nascimentos", "123");
                 RequestDispatcher dispatcher = req
                            .getRequestDispatcher("/listagem.jsp");
                    dispatcher.forward(req, resp);



            } catch (Exception e) {
                // TODO: handle exception
            }

        }

quando eu estava usando em uma classe de teste com o metodo main estava rodando normalmente.

12 respostas

Olá Thiago,

Você precisa adicionar o jar do driver do MySQL no ClassPath do seu servidor.

Se mesmo adicionando não funcionar, avisa aqui para gente qual é o servidor que você está usando e como fez para adicionar o jar, ok?

Abraço!

O jar do mysql já está presente, se eu testo a conexão e um select simples funciona, problema é, quando tento fazer isso dentro do doGet, de um HttpServlet.

Mas o teste com um select simples foi feito em uma classe com o método main, não?

Se possível, informe por favor qual o servidor que está usando e onde o jar está adicionado.

Ah... Outra coisa. Verifique, por favor, se o driver está sendo carregado/registrado lá na sua classe "Conection", que pelo o que entendi é a "factory" de conexões com o banco.

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

Continua o mesmo erro, a classe conection é o factory sim, segue ele.

public class Conection {



    public Connection getCon() throws SQLException {

            try {
                Class.forName("com.mysql.jdbc.Driver");
                Connection c = DriverManager.getConnection("jdbc:mysql://localhost/cartorio", "root", "");

                return c;
            } catch (Exception e) {
                // TODO: handle exception
                System.out.println(e);
                return null;
            }



            } 
}

Bom, Qual o servidor e onde foi adicionado o jar do mysql, por favor?

Estou usando o wamp e o jar está na pasta "referenced libraries"

Confesso que nunca trabalhei com esse servidor, mas faz dois testes então, por favor. 1º) Experimente colocar o jar do mysql na pasta lib do seu projeto web 2º) Experimente colocar a porta na URL de conexão com o MySQL, ficando assim (assumindo que 3306 é a porta do seu banco de dados):

DriverManager.getConnection("jdbc:mysql://localhost:3306/cartorio", "root", "");

Diga depois se funcionou, por favor.

Esta funcionando, porem não consigo enviar para a view o result set.

Connection c = new Conection().getCon();
                nascimentoDAO nDao = new nascimentoDAO();
                ResultSet rs = nDao.selecionaTudo(c);


                req.setAttribute("nascimentos",rs );
                 RequestDispatcher dispatcher = req
                            .getRequestDispatcher("/listagem.jsp");
                    dispatcher.forward(req, resp);

Como está o código da jsp, Thiago?

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>

</head>

<body>
<h1>test</h1>
<ul>
<c:forEach var="n" items="${nascimentos }"> 
</c:forEach>
    <li>${n.nome}</li>
</ul>

</body>
</html>
solução!

Boa noite Tiago,

Não seria

<c:forEach var="n" items="${nascimentos }"><li>${n.nome}</li></c:forEach>

Ou seja, a exibição dos nomes dentro do laço de para cada registro?

Abraços, Renan Souza