GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Mysql Connector/J não funciona

mysql
java
programação
Tags: #<Tag:0x00007f75ff7ab288> #<Tag:0x00007f75ff7a7ef8> #<Tag:0x00007f75ff79f1b8>

#4

O MySQL é 8.x também?


#5

Tentei instalar aqui e não consegui (estou na empresa, creio que seja culpa das políticas de segurança).
Porém, abri o jar num decompiler e, sim, a versão 8 dele está alterada, o com.mysql.jdbc.Driver está depreciado em prol do com.mysql.cj.jdbc.Driver.
Isso, porém, deveria permitir que o

Class.forName("com.mysql.cj.jdbc.Driver");

Funcionasse.
Embora este procedimento seja desencorajado, teoricamente, deveria ser automático.

De qualquer maneira, vamos tentar outra abordagem.
Este é um projeto desktop, certo? Ou é web?
Está, adequadamente, inserindo o jar como dependência? Ou usa maven?


#6

É um projeto desktop que estou fazendo com alguns amigos, estou usando maven mas já tentei importar com dependência também. A versão do mysql do wamp tb importa? está na versão mais atual disponível pelo wampserver: 5.7.22


#7

Já pensou em alguma coisa?


#8

todo mundo me ignora nesse fórum.


#9

Tem certeza que o caminho da classe é esse mesmo? no meu projeto eu usava “Class.forName(“com.mysql.jdbc.Driver”);”


#10

Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class iscom.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.


#11

A nova versão do Driver do MySQL alterou a nomenclatura do driver.


#12

eu criei minha classe de conexão assim

package util;

import java.sql.*;

public class FabricaConexao {

public static Connection conexao() throws SQLException {
	
	String url = "jdbc:mysql://localhost/agenda?useTimezone=true&serverTimezone=UTC&user=root&password=root";
	Connection con = null;
	try {  
		Class.forName("com.mysql.cj.jdbc.Driver");   
		con = DriverManager.getConnection(url);
	} catch (Exception e) {  
		e.printStackTrace();  
	}
	return con;         
}

}


#13

Deu na mesma. Mas o estranho de tudo é que ele funciona normalmente na IDEA mas n no java -jar


#14

É preciso acrescentar "?useSSL=false&&serverTimezone=UTC" na url.

  public Connection getConnection() {
		String url = "jdbc:mysql://" + this.host + ":" + this.port + "/" + this.database + "?useSSL=false&&serverTimezone=UTC";
		String user = this.user; 
		String pass = this.password;

		try {
			// Carregar o driver
			Class.forName("com.mysql.jdbc.Driver");
			// Abrir a conexão
			conn = DriverManager.getConnection(url, user, pass);
			return conn;
		} catch (ClassNotFoundException | SQLException e) {
			//...
		}

		return conn;
	}

#15
public MySql connect() {
    try {
        Class.forName("com.mysql.cj.jdbc.Driver");
        MySql.connection = DriverManager.getConnection("jdbc:mysql://" + this.host + ":" + this.port + "/" + this.database+"?autoReconnect=true&useSSL=false&&serverTimezone=UTC", this.user, this.password);
        return this;
    }
    catch (SQLException | ClassNotFoundException e) {
        e.printStackTrace();
    }
    return this;
}

Meu código está assim e está o msm erro.


#16

Não deveria dar erro.
Você adicionou o mysql-connector no build path?


#17

obvio, já tentei pelo pom e pelo build path


#18

É que não tem nada de errado com o código. O problema poderia ser o conector do mysql.


#19

#21
  1. Coloque o código abaixo nas dependências do maven;

         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
             <version>8.0.11</version>
         </dependency>
    
  2. Depois selecione o projeto e clique F4.

  3. Selecione Artifacts
    Verifica se aparece “Maven: mysql:mysql-connector-java:8.0.11” em Available Elements e dê dois cliques.


#22

Cara, se eu n tivesse feito isso nem iria dar build vc n acha?


#23

Siga os passos abaixo e diz se resolve seu problema.

java -cp caminhoDriver/mysql.jar; NomePrograma

cp = class path

image1


#24

Conseguiu resolver seu problema?