Exception in thread "main" java.sql.SQLException: No database selected

Peço sua ajuda para encontar o que esta errado.

Olha esse erro .

Exception in thread “main” java.sql.SQLException: No database selected
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:995)
at br.com.caelum.jdbc.dao.ContatoDAO.adiciona(ContatoDAO.java:28)
at br.com.caelum.jdbc.dao.TestaInsere.main(TestaInsere.java:24)

Foi gerado dessas classes …

package br.com.caelum.jdbc.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import br.com.caelum.jdbc.ConnectionFactory;
import br.com.caelum.jdbc.modelo.Contato;

public class ContatoDAO {

public Connection connection;

public ContatoDAO() throws SQLException{
    this.connection =  ConnectionFactory.getConnection();
}

public void adiciona (Contato contato) throws SQLException{

PreparedStatement stmt = this.connection.prepareStatement("insert into contatos (nome,email,endereco) values (?,?,?)");

//atribuind os valores

stmt.setString (1,contato.getNome());
stmt.setString (2,contato.getEmail());
stmt.setString (3,contato.getEndereco());

stmt.execute();
stmt.close();

}

}


package br.com.caelum.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", "root", "itc");
               
    }catch (ClassNotFoundException e){
       
        throw new SQLException (e.getMessage());
       
    }
   
}

}


import java.sql.SQLException;
//import java.util.Scanner;

import br.com.caelum.jdbc.modelo.Contato;

public class TestaInsere {

public static void main(String[] args)throws SQLException {
   
    //Scanner teclado = new Scanner (System.in);
   
    Contato con = new Contato ();
   
    //System.out.println("Nome: ");
    con.setNome("aaaa");
    //System.out.println("Email: ");
    con.setEmail("aaaa");
    //System.out.println("Endereco: ");
    con.setEndereco("aaaa");
   
    ContatoDAO dao = new ContatoDAO();
    dao.adiciona(con);
    System.out.println("Adicionado!");
   
   
}

}

MAS O QUE ESTA ERRADO ???
O BANCO DE DADOS ESTA CRIADO EM MYSQL COM O NOME TESTE, SENHA, E JAH FOI ESTARTADO…

Então dai surge a duvida o que esta errado ?

Obrigado

Será que você não está esquecendo de colocar o nome do banco de dados nessa linha:


 DriverManager.getConnection("jdbc:mysql://localhost", "root", "itc");

ficando assim:


 DriverManager.getConnection("jdbc:mysql://localhost/nomeSeuBanco", "root", "itc");

falta selecionar o banco,

("jdbc:mysql://localhost:3306/banco", "root", "itc"); 

http://www.guj.com.br/java.artigo.7.1.guj

Ola, na sua url de conexão vc tem que passar o banco que vc está se conectando…

jdbc:mysql://localhost:3306/NOME_DO_BANCO ...
Na sua url não tem o nome do banco.

Ok pessoal Estava realmente faltando a referencia ao Banco de dados (teste).

Ficou assim;

DriverManager.getConnection(“jdbc:mysql://localhost/teste”, “root”, “itc”);

Esta tudo Certo agora.

Agradeço a ajuda