Conectar java ao mysql

galera podem me ajudar? to tentando conectar o java com banco de dados mas ta dando erro no throw new DbException(e.getMessage()); /// ele nao ta sendo reconhecido. meu codigo abaixo…
package db;

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class DB {
	
	// Aqui precisamos criar alguns metodos staticos para conectar 
	//e desconectar ao banco de dados!
	// esses metodos estaticos retornam um objeto tipo Connection! 
	public static Connection conn = null;
	public static Connection getConnection() {
		// se o objeto estiver nulo eu me conecto com o banco de dados!
		if(conn == null) {
			try {
			Properties props = loadProperties();
			// url do banco de dados!
			String url = props.getProperty("jdbc:mysql://localhost:3306/cadastro");
			// para conectar com o banco de dados!
			conn = DriverManager.getConnection(url, props);
			}
			catch(SQLException e){
				// eseçao personalisada!
				throw new DbException(e.getMessage());
			}
		}
		
		return conn;
	}
	
	// Metodo para fechara coneçao com o banco de dados!
	public static void closeConection() {
		if(conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// eseçao personalisada!
				throw new DBeception(e.getMessage());
			}
		}
	}
	
	// metodo auxiliar responsavel por caregar os metodos file db.propties!
	// carregando  os dados e gauardando dento de um objeto especifico abaixo.
	// ele vai retornar um objeto do tipo Properties do java util.
	private static Properties loadProperties() {
		 
		try(FileInputStream fs = new FileInputStream("db.propties")){
			 Properties props = new Properties();
			 props.load(fs);
			 return props;
		 }
		// usado  IOException por q trata as 2 exepsions!
		 catch(IOException e) {
			 throw new DBeception(e.getMessage());
		 }
	}
}

//================================================
package db;

public class DBeception extends RuntimeException {

	private static final long serialVersionUID = 1L;

	public DBeception (String msg) {
		super (msg);
	}	
}

///==================================
package aplication;

import java.sql.Connection;

import db.DB;

public class Programa {

	public static void main(String[] args) {
	
		Connection conn =DB.getConnection();
		DB.closeConection();
		
	}

}

Confira o número da classe. Você escreveu diferente.

aaa o DB inicial referenciava a classe tendi, , mesmo assim no meu da um erro…
Exception in thread “main” db.DBeception: The url cannot be null
at db.DB.getConnection(DB.java:28)
at aplication.Programa.main(Programa.java:11)

E qual erro o IDE tá mostrando?

Exception in thread “main” db.DBeception: The url cannot be null
at db.DB.getConnection(DB.java:28)
at aplication.Programa.main(Programa.java:11)

String url = "jdbc:mysql://localhost:3306/cadastro";

Mas se quiser ler do arquivo de propriedades, mostra ele aí, a estrutura.

agora ta no sequinte erro.
Exception in thread “main” db.DBeception: Public Key Retrieval is not allowed
at db.DB.getConnection(DB.java:30)
at aplication.Programa.main(Programa.java:11)

Mostra o arquivo de propriedades

o faile?
user=cadastro
password=:)
dburl=jdbc:mysql://localhost:3306/cadastro
useSSL=false

se eu mandar para vc o arquivo será q vc não me ajudaria não ?

Arquivo de propriedades:

user=cadastro
password=senha
dburl=jdbc:mysql://localhost:3306/cadastro
useSSL=false
allowPublicKeyRetrieval=true

E outra coisa, pode fazer assim para pegar a URL:

String url = props.getProperty("dburl");
1 curtida

ja tentei ^^ tb nao deu

isso aqui não deu certo?

Exception in thread “main” db.DBeception: Access denied for user ‘cadastro’@‘localhost’ (using password: YES)
at db.DB.getConnection(DB.java:30)
at aplication.Programa.main(Programa.java:11)

A senha está correta? Consegue fazer login com esses dados pelo terminal ou phpMyAdmin?

sim a senha ta correta acesso normalmente pelo wrkbench

Você criou um novo usuário no banco de dados chamado ‘cadastro’? Normalmente o padrão é ‘root’

2 curtidas

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk aiaiaai vou me matar ai q raiva, eu estava usando o nome do BD no lugar do usuário por isso o erro, realmente e root e não cadastro. OBRIGADAO BROTHER!!

Lembre de, por segurança, sempre ter usuários específicos com autorizações específicas para o banco de dados.

comecei a pouco tempo com banco de dados, de data tenho certo conhecimento mas poderia me dar mais detalhes sobre “por segurança”?