Falha na conexao entre Mysql(Wamp) e aplicação Java

04/06/2019

0

Olá Senhores(as), estou tentando fazer uma conexão entre o meu banco de dados Mysql e uma aplicação java mas não ta funcionando de forma alguma, comecei a estudar a matéria recentemente e estou ficando viciado em java, mas não consigo de forma alguma fazer a ponte com o banco de dados, se alguem puder me ajudar vou agradecer muito.
Segue abaixo o meu codigo:

package conex2019;

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

public class ConexaoMysql {

private final String host = "localhost";
private final String port = "3306";
private final String db = "testejava";
private final String user = "root";
private final String password = "abcd1234";

private Connection conexao = null;

public ConexaoMysql() {
estabelecerConexao();
}

private void estabelecerConexao(){
String url = "jdbc:mysql://addres=(host="+host+")( port = "+port+")( user = "+user+")(password = "+password+")/"+db+"? useTimezone=true & serverTimezone=UTC & useSSL=false";
try {
conexao = DriverManager.getConnection(url);
} catch (SQLException ex) {
conexao = null;
}

}
public Connection getConnection(){
if(conexao == null){
estabelecerConexao();
if(conexao!=null && isConectado()){
return conexao;
}else{
return null;
}
}else{
if(isConectado()){
return conexao;
}
}
return null;
}

public boolean isConectado(){
if(conexao == null){
return false;
}else{
try {
if(conexao.isValid(0)){
return true;
}
} catch (SQLException e) {
conexao = null;
return false;
}
}
return false;
}
public void fecharConexao(){
if(isConectado()){
try {
conexao.close();
} catch (SQLException ex) {
conexao = null;
}
}
}
Davi

Davi

Responder

Posts

07/06/2019

Thiago Moreno

tente escrever sua url direto, sem montar. cole o retorno do erro de sua excecao.




//use a url dessa forma
String url = "jdbc:mysql://localhost:3306/testejava?useSSL=false";

// altere essa linha para ficar assim
conexao = DriverManager.getConnection(url,user,password);


outra coisa, troque a versao do seu driver do mysql para a 5.1.42

eu tenho esse modelo de classe
mas para usa-la, voce vai precisar criar uma pasta properties no seu projeto, e dentro dela colocar um arquivo com o nome db.properties
public class Conexao implements Serializable {

    Properties props = new Properties();
    private static final Conexao singleton = new Conexao();

    private Conexao() {
        try {
            props.load(getClass().getClassLoader().getResourceAsStream("/properties/db.properties"));
            if (props.getProperty("tipodb").equals("mysql")) {
                Class.forName("com.mysql.jdbc.Driver");
            }
            if (props.getProperty("tipodb").equals("sqlserver")) {
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                System.out.println("Carregando driver sql server");
            }
        } catch (IOException ioex) {
            System.out.println("Arquivo nao encontrado.\\\\\\\\n" + ioex.getLocalizedMessage());
        } catch (ClassNotFoundException cnfex) {
            System.out.println("Driver do banco de dados não encontrado. \\\\\\\\n" + cnfex.getLocalizedMessage());
        }
    }

    public static Conexao getInstance() {
        return singleton;
    }

    public Connection getConnection() {
        String url = "";
        if (props.getProperty("tipodb").equals("mysql")) {
            url = "jdbc:" + props.getProperty("tipodb") + "://" + props.getProperty("hostName")
                    + ":" + props.getProperty("port") + "/" + props.getProperty("dbName");
        }
        if (props.getProperty("tipodb").equals("sqlserver")) {
            url = "jdbc:" + props.getProperty("tipodb") + "://" + props.getProperty("hostName")
                    + ":" + props.getProperty("port") + ";databaseName=" + props.getProperty("dbName");
        }
        try {
            Connection conn = DriverManager.getConnection(url, props.getProperty("jdbc.user"),
                    props.getProperty("password"));
            return conn;
        } catch (SQLException ex) {
            System.out.println("erro ao conectar com o banco. \\\\\\\\n" + ex.getLocalizedMessage());
        }
        return null;
    }
}


e o arquivo db.properties

port=3306
tipodb=mysql
password=SUA_SENHA
dbName=SEU_BANCO
jdbc.user=root
hostName=localhost






Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar