Problema com conexão com banco de dados

3 respostas
B

Olá pessoal,
Sou um usuário registrado há pouco tempo, porém ja há um certo tempo que acompanho o fórum.
No início deste mês, comecei a estudar java, e estava tentando fazer um arquivo que cria a conexão com o banco de dados, e estou tendo alguns problemas e não conseguí resolver.
O driver do mysql ja coloquei no build path, então acho que isso não é o problema.

No código do ConnectionFactory, na linha do método, quando coloco o mouse acima do método, o Eclipse me mostra a seguinte mensagem: "This method must return a result of type Connection", mas ja estou retornando uma conexão no DriverManager.....

Vou colocar o código das duas classes e colocar uma print para que possa ver os erros.

Obrigado pela ajuda.

Classe ConnectionFactory

package br.com.brunofermino.jdbc;

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

public class ConnectionFactory {
	
		public static Connection getConnection() throws SQLException {
			try {
				Class.forName("com.mysql.jdbc.Driver");
				System.out.println("Conectando ao banco");
				return DriverManager.getConnection("jdbc:mysql://localhost/banco","root", "root");
			}
			catch (ClassNotFoundException e) {
				e.printStackTrace();
			}
			
	}

}

Classe TestaConexão

package br.com.brunofermino.jdbc.teste;

import java.sql.Connection;
import java.sql.SQLException;
import br.com.brunofermino.jdbc.ConnectionFactory;

public class TestaConexao {
	public static void main(String[] args) throws SQLException{
		Connection con = ConnectionFactory.getConnection();
		con.close();
	}

}

Segue o erro

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
This method must return a result of type Connection

at br.com.brunofermino.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:9)
at br.com.brunofermino.jdbc.teste.TestaConexao.main(TestaConexao.java:9)

[IMG]http://img503.imageshack.us/img503/361/pic1rj4.th.jpg[/IMG]

[IMG]http://img503.imageshack.us/img503/4071/pic2xl1.th.jpg[/IMG]

Muito obrigado pela ajuda

Bruno Fermino

3 Respostas

F

Vc precisa de um return depois do try catch, ou jogar a ClassNotFoundException

public static Connection getConnection() throws SQLException {  
               try {  
                   Class.forName("com.mysql.jdbc.Driver");  
                   System.out.println("Conectando ao banco");  
                   return DriverManager.getConnection("jdbc:mysql://localhost/banco","root", "root");  
               }  
               catch (ClassNotFoundException e) {  
                   e.printStackTrace();  
               }  
          
              return null;
                 
     }

ou

public static Connection getConnection() throws SQLException, ClassNotFoundException  {  
               
                   Class.forName("com.mysql.jdbc.Driver");  
                   System.out.println("Conectando ao banco");  
                   return DriverManager.getConnection("jdbc:mysql://localhost/banco","root", "root");              
           }
feltraco

vc nao pode deixar o return só dentro do TRY

o fuzzyMind, mostrou duas boas soluçoes… tenta lá

boa sorte

B

Olá,
O problema foi parcialmente resolvido! hehe!
Fiz isto que me sugeriram, coloquei o return ao final e o problema resolveu.

Só que estou tendo problema com meu mysql, pois depois ele mostra que não encontra a fonte.
Então provisoriamente eu estou fazendo via odbc com o access, enquanto eu não consigo resolver isto.

Pois eu nunca havia utilizado o mysql antes.

Mas de qualquer maneira, muito obrigado a todos !

Criado 29 de janeiro de 2008
Ultima resposta 29 de jan. de 2008
Respostas 3
Participantes 3