[RESOLVIDO]java.sql.SQLException: No suitable driver found

4 respostas
V

estou estudando e lendo uma postila de java WEB, o meu exemplo usando JDBC e um exemplo simples de servlet funcionou normal,
mas agora que estou na parte de cadastrar as informações digitadas em um form no banco usando uma servlet esta me retornando esse erro.

message java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/olivro

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

exception

java.lang.RuntimeException: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/olivro
	br.com.livro.dao.ConnectionFactory.getConnection(ConnectionFactory.java:13)
	br.com.livro.dao.LivroDAO.<init>(LivroDAO.java:13)
	br.com.livro.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:39)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/olivro
	java.sql.DriverManager.getConnection(Unknown Source)
	java.sql.DriverManager.getConnection(Unknown Source)
	br.com.livro.dao.ConnectionFactory.getConnection(ConnectionFactory.java:10)
	br.com.livro.dao.LivroDAO.<init>(LivroDAO.java:13)
	br.com.livro.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:39)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.26 logs.
pelo que pesquisei e vi no erro mas não sei se é isso ele nao esta achando meu driver. o código da minha classe que recebe os parâmetros do banco
public class ConnectionFactory {
	public Connection getConnection() {
		try {
			return DriverManager.getConnection("jdbc:mysql://localhost/olivro",
					"root", "root");
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}
}
o metodo da minha classe que faz a inserção
public class LivroDAO {
	private Connection connection;

	public LivroDAO() {
		this.connection = new ConnectionFactory().getConnection();
	}

	public void adiciona(Livro livro) {
		String sql = "insert into livro" + "(titulo, autor, editora)"
				+ "values (?,?,?)";

		try {
			// estancia o statment
			PreparedStatement stmt = connection.prepareStatement(sql);

			// pega os valores
			stmt.setString(1, livro.getTitulo());
			stmt.setString(2, livro.getAutor());
			stmt.setString(3, livro.getEditora());

			// executa
			stmt.execute();
			stmt.close();

		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}
}

4 Respostas

asousaj

ViniciusCastro
Onde você colocou seu connector?

Outra coisa, não sei se é obrigatório, mas eu sempre informo a porta do servidor MySQL, ex. “jdbc:mysql://localhost:3306/olivro”

V

asousaj:
ViniciusCastro
Onde você colocou seu connector?

Outra coisa, não sei se é obrigatório, mas eu sempre informo a porta do servidor MySQL, ex. “jdbc:mysql://localhost:3306/olivro”

colocar a porta infelizmente também não deu certo
o meu conector esta dentro da pasta “lib” no meu projeto que criei no meu projeto
ai depois dei um “Build path” e “add build path”

no meu exemplo de JDBC de certo fazer apenas isso, adicionou e consultou no banco tranquilamente.

asousaj

Posta aqui os imports da classe ConnectionFactory.

V

consegui resolver amigo de duas formas:
adicionei o driver do mysql na pasta LIB do apache

e adicionei o Class.forName("com.mysql.jdbc.Driver"); ao meu projeto.

ai rodou direitinho.

valew

Criado 5 de setembro de 2015
Ultima resposta 11 de set. de 2015
Respostas 4
Participantes 2