Probleminha com JDBC

2 respostas
mirrah

bom resolvi fazer meu projeto final com o jdbc mesmo. porém tem um erro zinho que insiste em aparecer.

a conexão em sim com o MySQL eu resolvi separa-la do restante do código, criando assim, uma classe chamada Conexao:
public class Conexao
{

    public void conexao(String urlMysql)
    {
            try {
                //carrega o jconnectior no projeto
                Class.forName(urlMysql);
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);
            }

     }
    
    public void obterConexao(String jdbc, String url, String login, String senha){
            Connection connection = null;
            Conexao conexao =null;
            try {
                conexao.conexao(jdbc);
                //obtem a conexão com o banco de dados
                connection = DriverManager.getConnection(url, login, senha);
            } catch (SQLException ex) {
                Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
e o resto do código de manipulação do banco está aqui:
public class AlunoDAO {



    public static void inserirAlu(int matricula, String nome, String email, 
            int cpf, String senha, int newsletter)
    {
        try
        {
            Conexao conexao;
            conexao = obterConexao("com.mysql.jdbc.Driver",
                    "jdbc:mysql://localhost:3306/mydb","root","alunolab");
        }catch( Exception exc )
        {
            System.out.println("não foi possível inserir a informação "+exc);
        }
        
        
    }
    
}

neste "obterConexao" está dando um erro falando que os arqumentos está no tipo errado, mas conferi na clase Conexao está tudo certo, eu acho.
será que alguém pode me ajudar a encontrar a origem do problema?

Desde já muito agradecido:D

2 Respostas

R

repare que vc está tentando atribuir o retorno de um método que é void(obterConexao)
a uma variável do tipo Conexao

para resolver:

public Connection obterConexao(String jdbc, String url, String login, String senha){  
            Connection connection = null;  
            Conexao conexao =null;  
            try {  
                conexao.conexao(jdbc);  
                //obtem a conexão com o banco de dados  
                connection = DriverManager.getConnection(url, login, senha);  
            } catch (SQLException ex) {  
                Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);  
            }  
return connection;
        }  
    }

E na chamada:

Connection con = new Conexao(). obterConexao("com.mysql.jdbc.Driver",  
                    "jdbc:mysql://localhost:3306/mydb","root","alunolab");
drsmachado

raf4ever:
repare que vc está tentando atribuir o retorno de um método que é void(obterConexao)
a uma variável do tipo Conexao

Então, se o que você precisa é da Connection criada, mude o tipo do método para Connection e coloque um return no final do método, retornando a variável de conexão já criada.

Criado 8 de junho de 2011
Ultima resposta 8 de jun. de 2011
Respostas 2
Participantes 3