E ae pessoal!!!
Minha dúvida é o seguinte…
Utilizo a IDE Eclipse para programar em Java e recentemente, praticamente, copiei e colei um código onde mostrava uma conexão com o banco MySQL. Segui os passos do livro Java Como Programar 6ª edição e alguns conceitos da apostila da Caleum, conceitos estes, principalmente em relação ao conector do MySQL e adição do mesmo, através do Build Path…
Ao compilar, é apresentando o seguinte erro:
publicclassDisplayAuthors{// nome do driver JDBC e URL do banco de dadosstaticfinalStringJDBC_DRIVER=“com.mysql.jdbc.Driver”;staticfinalStringDATABASE_URL=“jdbc:mysql://var/lib/mysql/books”;
// carrega o aplicativopublicstaticvoidmain(Stringargs[]){Connectionconnection=null;// gerencia a conexãoStatementstatement=null;// instrução de consulta
// conecta-se ao banco de dados books e o consulta try{Class.forName(JDBC_DRIVER);// carrega classe de driver do banco de dados// estabelece conexão com o banco de dadosconnection=DriverManager.getConnection(DATABASE_URL,"marcelo","marcelo1987");// cria Statement para consultar banco de dadosstatement=connection.createStatement();// consulta o banco de dados ResultSetresultSet=statement.executeQuery("SELECT authorID, firstName, lastName FROM authors");// processa resultados da consultaResultSetMetaDatametaData=resultSet.getMetaData();intnumberOfColumns=metaData.getColumnCount();System.out.println("Authors Table of Books Database:");for(inti=1;i<=numberOfColumns;i++)System.out.printf("%-8s\t",metaData.getColumnName(i));System.out.println();while(resultSet.next()){for(inti=1;i<=numberOfColumns;i++)System.out.printf("%-8s\t",resultSet.getObject(i));System.out.println();}// fim do while}// fim do trycatch(SQLExceptionsqlException){sqlException.printStackTrace();System.exit(1);}// fim do catchcatch(ClassNotFoundExceptionclassNotFound){classNotFound.printStackTrace();System.exit(1);}// fim do catchfinally// assegura que a instrução e conexão são fechadas adequadamente{try{statement.close();connection.close();}// fim do trycatch(Exceptionexception){exception.printStackTrace();System.exit(1);}// fim do catch}// fim do finally
} // fim de main
} // fim da classe DisplayAuthors
// pelo que vejo books e o nome do seu banco então:staticfinalStringDATABASE_URL="jdbc:mysql://localhost/books";
ou então tente
// pelo que vejo books e o nome do seu banco então:staticfinalStringDATABASE_URL="jdbc:mysql://localhost:3306/books";
espero ter ajudado
ramallius
Então cara…
Já tinha tentado assim também, mas não consegui.
Um problema que estou vendo aqui, acho que seria em relação ao MySQL, pois ao ver a versão do mesmo (MySQL), não pe apresentada pra mim, a linha que informa a porta TCP/IP 3306 (default).
Estou pessupondo, não sei é isso mesmo.
Valeu, abraços!
gerdec
Para ficar mais facil a solução do problema especifica para mim: a versão do seu MYSQL, do Driver ou connector MYSQL e do eclipse já adianto a ideia e usar o conector mais novo com o mysql e 5. alguma coisa e tem ou esque ma geralmente quando a pessoa baixa o driver do banco ele vem .zip vc descompactar ele procurar o arquivo .jar dentro da pasta do mysql descompactado e adicionar o .jar ao projeto o que acontece e que muita gente adiciona o .zip completo ao projeto e não funciona quando tem que ser só o .jar espero ter ajudado
ramallius
Respondendo suas perguntas…
Minha versão do MySQL é a 5.0.24.
Como utilizo Slackware 11, o nome do pacote completo que foi instalado, é o mysql-5.0.24a-i486-1.tgz.
A versão do conector que estou utilizando é a: 5.0.7
E por ultimo, a versão do Eclipse: 3.3.1
Sobre o comentário que você fez sobre, o não decompactar o arquivo e muitas pessoas colocam o .zip no projeto, pode ter certeza que esse não é problema. Pois é o arquivo .jar que está em meu projeto e o adicionei no projeto, por aquele caminho Build Path etc…
Se faltou alguma coisa, é só dizer.
Abraços!
gerdec
cara faz o seguinte criei um exemplo de conexão JDBC que funciona perfeitamente aqui, vou te passar ele tenta usar e vê se dá algum erro que ai talvés posso te falar com base na utilização que faço dele o erro ,nada contra seu código e que esse utilizo a um bom tempo e assim tenho mais controle sobre ele ai vai
importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.Statement;publicclassExemploJDBC{publicstaticvoidmain(String[]args){//eclaração das variaveis necessarias Connectionconexao=null;Statementstm=null;Stringsit="";ResultSetrs=null;try{// essa é a classe que é carregada para fazer a conexão jdbc com a base de dadosClass.forName("com.mysql.jdbc.Driver").newInstance();/*coloque no lugar de "teste" o nome do seu banco e no lugar de root o seu usuário e 12345 a sua senha coloquei usuário root por que por padrão o mysql cria esse usuário como no linux no seu caso pode usar ele já pois ele já foi criado existe */conexao=DriverManager.getConnection("jdbc:mysql://localhost:3306/teste","root","12345");/* esse jdbc:mysql://localhost:3306 e onde o banco está ou seja na sua maquina e a porta 3306 que é padrão no mysql*///stm objeto que recebe a conexãostm=conexao.createStatement();// se a connexão der certo aparecera a mensagem Conexao realizada com sucessosit="Conexao realizada com sucesso";System.out.println(sit);//rs e o resulte set que recebe o retorno da consulta SQLrs=stm.executeQuery("select * from usuario");// looping para interar e imprimir os dadoswhile(rs.next()){Stringnome=rs.getString(1);Stringsenha=rs.getString(2);System.out.println(nome);System.out.println(senha);}// aqui o stm que contém o stamente recebe uma instrução insert e se executada//imprime confirmaçãostm.executeUpdate("insert into usuario (login,senha)values ('fabricio','farias')");System.out.println("comando insert executado com exito");// catch usado para avisar se der algum erro na consulta SQL com um Exception}catch(Exceptione){sit="Nao foi possivel conexaoectar "+e.getMessage();System.out.println(sit);}}}
espero ter ajudado testa e me fala o resultado por favor para que possamos solucionar esse problema blz
B
bffermino
Eu tive um problema semelhante, porém estava utilizando no Windows.
Ao adicionar o MySql Conector, eu estava adicionando o arquivo .zip direto, ao fazer isso, tinha problemas com meu código.
Tente adicionar o arquivo .jar do mysql conector ao classpath.
Espero que funcione
Bruno
S
Sidnelsom
O problema pode estar na ide… eu tive o mesmo problema com o eclipse num curso que fiz… havia dois eclipses instalados… depois que vi que havia dois, entrei no outro que estava funcionando e pus pra rodar o programa com mysql e foi… daí não prestei atenção para ver qual era bem o erro no outro, mas parece erro de classpath.
L
laoguimaraes
Marcelo, eu tive um problema semelhante a este e o que percebi foi o seguinte:
Eu havia criado um projeto no eclipse em uma máquina com Java 6, com implementaação simples de uma classe (basicamente um HelloWorld :-)) . Funcionou na boa, porém depois copiei meu workspace para uma maquina com Java 5 e tentei rodar a classe e para minha surpresa deu pau.
Não sei se você fez algo parecido (copiar a sua workspace para outra maquina), mas acho que vale a pena voce dar uma olhada na configuração do seu Eclipse.
No projeto, clique com o botão direito e depois em Preferences\Java Compiler;
Na tela Java Compiler clique no link Configure Workspace Settings.
Dentro da nova tela (Compiler) verifique se a JRE que está configurada está coerente com a que voce tem instalado em sua maquina.