Problemas com Java e MySQL: O que fazer?

Cordiais saudações, pessoal do GUJ.

Faz tempo que não apareço por aqui. Assim como faz vários meses que não mexo neste sisteminha que está apresentando problemas. O que acontece é que formatei a máquina e tive que instalar novamente o MySQL e criar novamente o banco de dados e as tabelas. Mas agora não está funcionando o sistema e eu queria uma ajuda de vocês.

O sistema está dando mensagem de erro: java.lang.RuntimeException: Erro ao inicializar BD.

Abaixo está a classe BD.java e a imagem dos erros que o NetBeans apresentou. Pergunto: o que eu faço agora?

linha 01 package empresaiv;
linha 02 
linha 03 import java.sql.*;
linha 04 
linha 05 /**
linha 06  * @author Ronaldo R. Godoi, contibuição de Staroski
linha 07  */
linha 08 public final class BD {
linha 09     
linha 10     private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
linha 11     private static final String DBNAME = "empresa";
linha 12     private static final String URL = "jdbc:mysql://localhost:3306/" + DBNAME;
linha 13     private static final String LOGIN = "root";
linha 14     private static final String SENHA = "04latosensu10";
linha 15     public final Connection connection;
linha 16     
linha 17     /**
linha 18      * Única instância desta classe
linha 19      */
linha 20     private static BD instance;
linha 21     
linha 22     /**
linha 23      * Obtém a única instância desta classe
linha 24      */
linha 25     public static synchronized BD getInstance() {
linha 26         if (instance == null) {
linha 27             System.out.println("Criando objeto da classe BD");
linha 28             instance = new BD();
linha 29         }
linha 30         System.out.println("Retornando objeto existente da classe BD");
linha 31         return instance;
linha 32     }
linha 33     
linha 34     
linha 35     /**
linha 36      * Construtor privado
linha 37      */
linha 38     private BD() {
linha 39         try {
linha 40             Class.forName(DRIVER);
linha 41             connection = DriverManager.getConnection(URL, LOGIN, SENHA);
linha 42             System.out.println("Conectou! ");
linha 43         } catch (Throwable t) {
linha 44             throw new RuntimeException("Erro ao inicializar BD", t);
linha 45         }
linha 46     }
linha 47 
linha 48     /**
linha 49      * Fecha a conexão com o banco
linha 50      */
linha 51     public void close() {
linha 52         try {
linha 53             connection.close();
linha 54             instance = null;
linha 55             System.out.println("Desconectou...");
linha 56         } catch(Throwable t) {
linha 57             throw new RuntimeException("Erro ao fechar BD", t);
linha 58         }
linha 59     }
linha 60 }

Tela com os erros:

Grande abraço aos companheiros do GUJ.
Atenciosamente,
Ronaldo

Instalou e configurou o driver do MySQL no seu projeto? Pois, se ler a mensagem completa, verá que diz que a classe “com.mysql.cj.jdbc.Driver” não foi encontrada.

Abraço.

1 curtida

Eu vou verificar se o driver está no projeto mas deveria estar uma vez que eu tinha o projeto rodando. Se não for este o problema eu mando outra mensagem por aqui. Muito obrigado.

Quem te ensinou a capturar Throwable e relançar uma RuntimeException? Tudo errado… Não se captura Throwable em um sistema de verdade, pq no “pacote” vc pega exceções que NÃO DEVEM SER TRATADAS. Vc está transformando qualquer coisa em uma exceção não checada. Capture o que precisa ser capturado e relance caso necessário. Olha lá onde foi parar a real causa do seu problema! Lá embaixo… Falta vc configurar o driver do SGBD na sua aplicação como o @TerraSkilll disse.

3 curtidas

Alguém, por favor, pode me dizer onde faço o download do com.mysql.cj.jdbc.Driver. Realmente está faltando o driver e eu não consigo achar na internet.

Obrigado,
Ronaldo

https://dev.mysql.com/downloads/connector/j/

1 curtida

Obrigado, Staroski. Faz tempo que não conversamos, abraço.

Veja a tela que o link que você me mandou mostra, como você pode notar não tem a opção para sistema operacional Windows 10. Como eu devo proceder?

image

Sempre utilizo o platform Independent, para mim tem funcionado.

1 curtida

Mas tem “Platform Independent”.

1 curtida

Vc pode usar tb o connector MariaDB, irá funcionar normalmente com o MySQL
https://mariadb.com/downloads/connectors/connectors-data-access/java8-connector

1 curtida