Não consigo compilar código de conexão Mysql

Pessoal, não estou conseguindo fazer uma conexão com o mysql, estou utilizando os códigos:

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

public class ConnectionFactory {
	public static Connection getConnection() throws SQLException {
		try {
			Class.forName("jdbc:mysql://localhost/teste");
			return DriverManager.getConnection("com.mysql.jdbc.Driver","root","12345");
		} catch (ClassNotFoundException e) {
			throw new SQLException(e.getMessage());
		}
	}
}
import java.sql.Connection;
import java.sql.SQLException;

import br.com.caelum.jdbc.ConnectionFactory;

public class TestaConexao {

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

Quando tento compilar aparece a mensagem:

Alguém sabe como resolver esse problema?
Agradeço desde já qualquer ajuda.

use issoo

[code]
import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;

public class ConnectionMySQL {

public static Connection getConnection(String database)
		throws ClassNotFoundException, SQLException {
	String DRIVER = "com.mysql.jdbc.Driver";
	String URL = "jdbc:mysql://localhost/" + database;
	String USUARIO = "root";
	String SENHA = "123456";

	Class.forName(DRIVER);
	Connection con = (Connection) DriverManager.getConnection(URL, USUARIO,
			SENHA);

	return con;
}

}
[/code] e nao esqueça de importar a lib do MYSQL no classpath

voce esta invertendo as ordens … pega o exemplo que eu fiz… e ve se voce entende seu erro

Identifiquei dois erros no seu código.

Primeiro erro:

Class.forName("jdbc:mysql://localhost/teste");

Nesta instrução você “carrega” o driver do MySQL, logo tem que informar o caminho até ele, que é com.mysql.jdbc.Driver, sendo que você informa a URL do banco de dados. Sendo assim, a instrução correta seria:

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

Segundo erro:

return DriverManager.getConnection("com.mysql.jdbc.Driver","root","12345");

Nesta intrução é retornada uma conexão ao banco de dado de acordo ao que é passado nos argumentos do método getConnection, sendo que o primeiro argumento deve ser a URL do banco de dados, e não o driver do MySQL. Logo, esta instrução deveria ser corrigida para:

return DriverManager.getConnection("jdbc:mysql://localhost/teste","root","12345");

blz, fiz a alteração no código, mas agora o meu main, que chama getConnection(), está reclamando a falta do parâmetro, no caso a string do método - public static Connection getConnection(String database) - só que eu não sei o que devo colocar aí.

essa string vc tem q por o nome do seu banco de dados… no seu caso eh “teste”

O método getConnection que você postou não tem parâmetro, e nem precisa ter, já que o objetivo deste código é introduzir os conceitos básicos do JDBC, o SGBD utilizado será necessáriamente o MySQL e o banco de dados se chamará teste.

Mas caso você queira usar uma versão do método que recebe como parâmetro a URL do banco de dados, faça a seguinte alteração:

[code] import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionFactory {
public static Connection getConnection(String database) throws SQLException {
try {
Class.forName(“com.mysql.jdbc.Driver”);
return DriverManager.getConnection(database,“root”,“12345”);
} catch (ClassNotFoundException e) {
throw new SQLException(e.getMessage());
}
}
}[/code]
Neste caso, você teria que passar o argumento “jdbc:mysql://localhost/teste” ao chamar o método getConnection.

Mas caso você queira usar o método getConnection sem parâmetro algum, já que a URL do banco de dados passada como argumento seria sempre a mesma, faça da seguinte maneira:

[code] 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”);
return DriverManager.getConnection(“jdbc:mysql://localhost/teste”,“root”,“12345”);
} catch (ClassNotFoundException e) {
throw new SQLException(e.getMessage());
}
}
}[/code]
Dessa maneira, ao chamar o getConnection no método main você não precisaria passar argumento algum.