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?
Extrai os arquivos do seu .jar (renomeia pra .zip), fica numa pasta META-INF.
mas que .jar?
eu não criei nenhum jar
Nunca fez deploy de uma aplicacao Java? Exportar pra jar ou war?
tipo, eu sei como exportar o arquivo, mas eu não fiz nada disso, eu só to executando pela IDE, o netbeans, eu não fiz nada pra exportar o arquivo nem nada, ta tudo em .java ainda
Compila pra ter o manifest ou exporta o .jar. É só pra obter uma informação, mas se não achar necessário e garante que o Netbeans está configurado pro Java 8, não precisa.
pior que agr que vc falou, acho q não, em bibliotecas ele ta com JDK 1.7, como mudo isso?
Consegui mudar, agr ta dando outros erros, vou colocar aqui
O que usa o Driver JDBC:
Exception in thread "main" java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1062)
at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3556)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2513)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:822)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at PrincipalTest1.main(PrincipalTest1.java:14)
Caused by: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1007)
... 15 more
Java Result: 1
O que usa o .jar:
Exception in thread "main" java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:207)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at PrincipalTest.main(PrincipalTest.java:14)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)
Boa, já passamos daquele problema. Debuga e posta todo código envolvido com o problema. Aponta tambem a linha que deu o erro.
Ideal mesmo seria encerrar esse tópico e abrir um novo.
ok, mas agr eu vo ali fora, que eu vo ver umas parada do meu curso, além disso o código todo que eu fiz, é aquele ali em cima mesmo, o problema ta na hora de pegar a conexão se não me engano, é no getConnection
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();
}
}
Tem um tópico que relata esse tipo de problema: [RESOLVIDO] Conexão com a aplicação e o banco
Tem que usar um conjunto compatível, SO, Java, MySQL Server e driver jdbc/Connector.
CARACA VÉI FOIIII, kkkkkkk eu resolvi usar o mysql-connector-java-8.0.13.jar ai depois que deu esse erro:
Exception in thread “main” java.sql.SQLNonTransientConnectionException:
Public Key Retrieval is not allowed
eu fui e pesquisei e encontrei uma solução que foi pq eu escrevi uma parada errada que era pra ficar true e eu botei false, então corrigi e deu um erro de Time zone, então pesquisei de novo e corrigir, era tudo no URL do banco, no final ficou assim o código:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class PrincipalTest {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conexao = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/dbloja?useSSL=true&useTimezone=true&serverTimezone=UTC", "root", "Sali031297");
System.out.println("Conectou!");
conexao.close();
}
}
O meu Netbeans é o 8.0.2, o meu MySQL é 8.0.13 o conector usado tbm é 8.0.13 e o meu Sistema Operacional é Windows 10 Home.
Na moral, to muito feliz, to a mais de 2 semanas querendo aprender a fazer as interações de BD com Java e por conta desse erro eu não conseguia, na moral kkkkkkk vlw pela ajuda glr, vcs me ajudaram muito me explicando fala ndo o que cada uma sabia e pensava que poderia ser o erro, aprendi muito com vcs. Que Deus abençoe a todos.
isso realmente é a solução. Funcionou para mim.