[RESOLVIDO]Conexão do Banco de Dados com Java

Galera, eu to seguindo uns videos pra aprender o basico de como estabelecer uma conexão do banco de dados do mysql com o Java, mas logo quando cheguei no primeiro teste que ele faz no video, o meu da errado, não consegue estabelecer a conexão, eu não entendi o porque, eu fiz tudo igual, tudo certinho.

Segue o código de onde ocorre o erro:

é justamente na linha onde tem o return do getConnection()

public class ConnectionFactory {

private static final String driver = "com.mysql.jdbc.Driver";
private static final String url = "jdbc:mysql://localhost:3306/dbloja";
private static final String user = "root";
private static final String pass = "";

public static Connection getConnection() {
    try {
        
        Class.forName(driver);
        return DriverManager.getConnection(url, user, pass);
        
    } catch (ClassNotFoundException | SQLException ex) {
        throw new RuntimeException("Erro na conexão", ex);
    }
}

public static void closeConnection(Connection com) {
    if(com != null) {
        try {
            com.close();
        } catch (SQLException ex) {
            System.err.println("Erro:" + ex);
        }
    }
}
public static void closeConnection(Connection com, PreparedStatement stmt) {
    if(stmt != null) {
        try {
            stmt.close();
        } catch (SQLException ex) {
            System.err.println("Erro:" + ex);
        }
    }
    closeConnection(com);
}
public static void closeConnection(Connection com, PreparedStatement stmt, ResultSet rs) {
    if(rs != null) {
        try {
            rs.close();
        } catch (SQLException ex) {
            System.err.println("Erro:" + ex);
        }
    }
    closeConnection(com,stmt);
}

}

Foto do erro:

Glr eu acredito que tenho encontrado o erro, só não sei como resolver, eu acho q eu coloquei uma senha que eu não lembro, alguém saberia como obter essa senha? ou como mudar a senha? ou eu terei que refazer o servidor?

Tenta retirar esses try catch e posta a msg de erro real. Nao sei pq programadores Java usam tanto try catch.

eu usei pq o código pedia, essa parada do mysql gera uma exception, então ele me obriga a colocar, mas acho q eu posso usar o normal, vo fazer isso amanhã e postar aqui

Bizarro o Java ficar exigindo isso sem que tenhamos a real necessidade, por isso o código Java é tao burocrático e poluído.

Tenta isso:

   try
    { 
        //seu codigo
    } 
    catch(ClassNotFoundException | SQLException ex) 
    { 
        throw ex;
    } 

Segui a linha que voce fez, mas também tem outra forma mais curta para atender essa burocracia, eu nao lembro mais como é, aqui deve ter algo: http://www.ntu.edu.sg/home/ehchua/programming/java/j5a_exceptionassert.html

Acho que é essa parte que me referi do tutorial:

public void methodD() throws XxxException, YyyException { ...... }

tirei o try e deixei a clausula de throw e o erro que saiu foi:

Caused an ERROR
Unable to load authentication plugin ‘caching_sha2_password’.

Agora sim temos a mensagem de erro.

Pesquisando pela mensagem vai encontrar por exemplo: https://stackoverflow.com/a/50433762

Eu não entendi o q é pra fazer nesse comentario, o que a linha que ele escreve faz? e é só escrever aquilo?

Cara eu resolvi essa parada do root, agr to com outro problema q é esse erro aqui

Caused an ERROR
java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long

esse erro ta dando na mesma linha, no

return DriverManager.getConnection(url, user, pass);

pra resolver o outro erro, eu criei um usuario diferente com mysql_native_password mas agr to com esse erro ai em cima q citei agr

Tentando resolver o problema eu tentei importar o o jar mysql-connecto-java-8.0.12.jar em vez da biblioteca que é de uma versão mais antiga e devia tar causando o conflito já que eu estou usando Java 8 e Mysql 8.0.12 mas tem um problema agr que é esse logo a baixo:

Caused an ERROR
com/mysql/jdbc/Driver : Unsupported major.minor version 52.0

alguém poderia me ajudar a resolver isso ou os problemas anteriores?

Alguém poderia me ajudar?eu realemente preciso resolver isso, eu até agr não consegui resolver o problema

Posta o conteúdo do arquivo Manifest do seu jar.

do jar do Connection/j? do myql?

Do seu jar.

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

public class PrincipalTest1 {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conexao = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/dbloja", "novoroot", "0123456");
        System.out.println("Conectou!");
        conexao.close();
    }
}

Esse nao é o arquivo manifest. Seria bom saber se realmente seu jar está sendo gerado pelo Java 8 (1.8). Uma prova seria através do arquivo MANIFEST.MF.

Boa noite
Se não me engano, a partir da versão 8 do MySQL a classe Driver é:

“com.mysql.cj.jdbc.Driver”

Seguindo seus códigos a conexão ocorre sem problemas.
Porém, a orientação do manual do MySQL 8 indica que se use a seguinte forma para a URL de acesso ao BD:

“jdbc:mysql://127.0.0.1:3306/dbloja?useSSL=false”

Eu criei 2 projetos um usando o mysql-connector-java-8.0.13.jar e o erro desse é:

Exception in thread “main” java.lang.UnsupportedClassVersionError:
com/mysql/jdbc/Driver :
Unsupported major.minor version 52.0

o outro eu coloquei o Driver JDBC do MySQL - mysql - connector - java - 5.1.23-bin.jar que da esse erro:

Exception in thread “main” java.sql.SQLException:
java.lang.ClassCastException:
java.math.BigInteger cannot be cast to java.lang.Long

eu fiz o que vc disse e mesmo assim ta dando os mesmos erros

Onde eu encontro esse MANIFEST.MF?