GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

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


#1

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


#2

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");

#3

falta selecionar o banco,

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

#4

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


#5

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.


#6

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


#7