Erro: conexão com mysql

12 respostas
marcusluiz83

Boa noite a todos.

Estou utilizando netbeans 6.8 + mysql no ubuntu 9.10, e quando testo a conexão com o banco de dados,  o seguinte erro:

[color=red]

init:

deps-module-jar:

deps-ear-jar:

deps-jar:

library-inclusion-in-archive:

library-inclusion-in-manifest:

Compiling 1 source file to /home/marcus/NetBeansProjects/jdbc/build/web/WEB-INF/classes

compile:

compile-test-single:

run-test-with-main:

Exception in thread main java.sql.SQLException: com.mysql.jdbc.Driver

at conexao.ConnectionFactory.getConnection(ConnectionFactory.java:20)

at dao.ContatoDAO.(ContatoDAO.java:1

at TestaInsere.main(TestaInsere.java:22)

Java Result: 1

CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)[/color]

Já procurei em vários tópicos, mas não consegui solucionar.

Espero que possam me ajudar. Um abraço a todos.

12 Respostas

marciofermino
Amigo um exemplo simples:
package br.prologica.conexao;



import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionFactory {

    public static Connection getConnectionMysql() throws SQLException{
        try {
            Class.forName("com.mysql.jdbc.Driver");
         
            return DriverManager.getConnection("jdbc:mysql://localhost:3306/bd", "root", "");
        } catch (ClassNotFoundException e) {
           throw new SQLException(e.getMessage());
        }
    }
    
   
    
}

É claro que isso poderia ser melhor implementado, mais me parece que vc esta iniciando no mundo java, isso deve ajudar.

package br.prologica.conexao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;

public class teste {

	public teste() {
		Connection con = null;
		PreparedStatement comando = null;
		ResultSet rs = null;

		try {
			con = (Connection) ConnectionFactory.getConnectionMysql();

			String vSQL = "SELECT * FROM usuario";
			comando = (PreparedStatement) con.prepareStatement(vSQL);

			rs = comando.executeQuery();
			ArrayList<Object> objeto = new ArrayList<Object>();

			while (rs.next()) {

				System.out.println(rs.getString("nome"));
				System.out.println(rs.getString("senha"));

			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		teste t = new teste();

	}

}

Não se esqueça de adicionar o drive do MySQL.

Abraço.

marcusluiz83

Obrigado pela ajuda, amigo, mas utilizei seus códigos neste mesmo projeto para testar, e deu o mesmo erro. Acho que é justamente o que você disse, parece não estar carregando o drive do mysql. Não sei como fazer no netbeans, já passei por este problema no eclipse, e só adicionei o jar no classpath. É o mesmo raciocínio para o netbeans?

marcusluiz83
Meus códigos:
package conexao;


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");
            System.out.println("Conectando ao banco de dados MYSQL");
            return DriverManager.getConnection("jdbc:mysql://localhost/teste", "root", "");
        } catch (ClassNotFoundException e) {
            throw new SQLException(e.getMessage());

        }

    }
}
import conexao.ConnectionFactory;
import java.sql.Connection;
import java.sql.SQLException;

public class TestaConexao {
    public static void main(String[] args) throws SQLException{
        Connection connection = ConnectionFactory.getConnection();
        connection.close();
    }

}
marciofermino

Clique com o botão direito no nome do projeto
Clique em propriedades

Clique em BiBliotecas

Na aba compilar , CLIQUE em adicionar jar ou pasta

e pronto

marcusluiz83

Opa, tá clareando. Consegui instalar o driver, como o colega me orientou, mas continuou dando erro, porém as linhas do erro diminuíram:

init: deps-module-jar: deps-ear-jar: deps-jar: compile-single: run-main: Exception in thread "main" java.sql.SQLException: com.mysql.jdbc.Driver at conexao.ConnectionFactory.getConnection(ConnectionFactory.java:20) at dao.ContatoDAO.<init>(ContatoDAO.java:18) at teste.TestaInsere.main(TestaInsere.java:24) Java Result: 1 CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

Help, please! Falta pouco. Achei que era apenas o driver que estava faltando. :frowning:

marcusluiz83

:?:

ramilani12

coloque todo stacktrace aqui

marciofermino

Amigo a prinicipio é o seiu metodo inserir que esta errado…

viniciusgundim

Use essa classe de conexão:

package ultilitarios;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
public class conexao{
    final private String driver = "com.mysql.jdbc.Driver";
    //Efetua a Conexão com o Banco
    final private String url = "jdbc:mysql://localhost:3306/bd";
    final private String usuario = "root";
    final private String senha = "senha";
    private Connection conexao;
    //Responsável por abrir o caminho até o Banco de Dados
    public Statement statement;
    //Armazena os Dados do Banco
    public ResultSet resultset;
    
    //Classe Conecta
    public boolean conecta () {
        boolean result = true;
        try {
            Class.forName(driver);
            try {
                conexao = DriverManager.getConnection(url, usuario, senha);
                System.out.println("Conectou");
            } catch (SQLException ex) {
                Logger.getLogger(conexao.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        catch(ClassNotFoundException Drive) {
            JOptionPane.showMessageDialog(null, "Não foi Possível Conectar a Base de Dados");
            result = false;
        
        }
        return result;
    }
    //Classe Desconecta
    public void desconecta (){
        boolean result = (true);
        try{
            conexao.close();
        }
                catch (SQLException erroSQL){
                    result =false;
                }
    }
    //Conecta Sql
    public void execultesql(String sql){
        try{
            
            statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
            resultset = statement.executeQuery(sql); 
        }
        catch (SQLException sqlex){
            JOptionPane.showMessageDialog(null, "Não foi possível executar o comando SQL"+sqlex);
        }
    }

    public void executesql(String string) {
        throw new UnsupportedOperationException("Not yet implemented");
    }
}

Para adicionar o Driver no Projeto:

Clique com o direito em cima do projeto>propriedades>bibliotecas>adicionarbibliotecas e adc o drive do mysql acho que não irá ter problemas.

marcusluiz83

Olá, amigos! Vou testar o código que o colega acima me sugeriu, e vou postar o que foi solicitado

Erro:
init:
deps-module-jar:
deps-ear-jar:
deps-jar:
library-inclusion-in-archive:
library-inclusion-in-manifest:
compile:
Compiling 1 source file to /home/marcus/NetBeansProjects/jdbc/build/test/classes
compile-test-single:
run-test-with-main:
Exception in thread "main" java.sql.SQLException: com.mysql.jdbc.Driver
        at conexao.ConnectionFactory.getConnection(ConnectionFactory.java:20)
        at dao.ContatoDAO.<init>(ContatoDAO.java:18)
        at TestaInsere.main(TestaInsere.java:24)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)
ConnectionFactory
package conexao;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * Classe responsável por criar a conexão com o banco de dados
 * @author marcusluiz83 /+/LaraSoft/+/
 */
public class ConnectionFactory {

    public static Connection getConnection() throws SQLException {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("Conectando ao banco de dados MYSQL");
            return DriverManager.getConnection("jdbc:mysql://localhost/teste", "root", "");
        } catch (ClassNotFoundException e) {
            throw new SQLException(e.getMessage());

        }

    }
}
ContatoDAO
package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import modelo.Contato;
import conexao.ConnectionFactory;

/**
 * Classe capaz de acessar o banco de dados através do Design Patter DAO
 * @author marcus/+/LaraSoft/+/
 */
public class ContatoDAO {

    private Connection connection;

    public ContatoDAO() throws SQLException {
        this.connection = ConnectionFactory.getConnection();
    }

    public void adiciona(Contato contato) throws SQLException {

        // prepared statement para inserção
        String sql = "insert into contatos(nome,email,endereco)values(?,?,?)";
        PreparedStatement stmt = connection.prepareStatement(sql);

        // seta os valores
        stmt.setString(1, contato.getNome());
        stmt.setString(2, contato.getEmail());
        stmt.setString(3, contato.getEndereco());

        // executa
        stmt.execute();
        stmt.close();
    }
}
TestaInsere
import dao.ContatoDAO;
import java.sql.SQLException;
import modelo.Contato;

/**
 * Classe que testa a inserção de dados no banco de dados MYSQL, usando a
 * classe ContatoDAO
 * @author marcus/+/LaraSoft/+/
 */
public class TestaInsere {

    public static void main(String[] args) throws SQLException {

        // pronto para gravar
        Contato contato = new Contato();
        contato.setNome("Caelum");
        contato.setEmail("[email removido]");
        contato.setEndereco("Rua Vergueiro 3185 - conjunto 57");

        // grave nessa conexão!!!
        ContatoDAO dao = new ContatoDAO();

        // método elegante
        dao.adiciona(contato);

        System.out.println("Gravado");
    }
}

Valeu...

marcusluiz83

Pessoal, consegui. Peguei a versão mais nova do driver do mysql e funcionou. A versão que eu tinha que tava dando erro, agora só não sei por que. Obrigado pela ajuda de todos.

pispico

Da pau tambem se vc esta usando o tomcat e nao coloca o driver na pasta lib dele.

Entao alem de colocar o jar no projeto e no claspath nao esqueca de colocar na lib do tomcat(Claro se for ele que vc estiver usando)

Criado 31 de janeiro de 2010
Ultima resposta 2 de fev. de 2010
Respostas 12
Participantes 5