Conectar o Java ao MySql

Iniciado por trindade, 16 de Novembro de 2007, 14:08

tópico anterior - próximo tópico

trindade

Pessoal,

Estou aprendendo java e, como tive dificuldades em conectar o Java ao MySql, estou postando aqui o caminho percorrido até conseguir que tudo funcionasse a contento.

Na seqüência, temos os passos para a criação de uma banco de dados chamado "biblioteca", uma tabela chamada "teste", para o usuário "admin" com senha "123456".

A parte mais complicada foi determinar a forma de conexão, bem como o lugar onde colocar a biblioteca de conexão (.jar). Vejam a seqüência:

colocar o arquivo: mysql-connector-java-5.1.5-bin.jar
(obtido em: http://www.mysql.com/products/connector/j/)

no diretorio: /usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/ext/

criar no mysql o banco: biblioteca

root@civil:/home/trindade# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 30
Server version: 5.0.45-Debian_1ubuntu3-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database biblioteca;
Query OK, 1 row affected (0.01 sec)

mysql> grant all privileges on biblioteca.* to admin identified by "123456";
Query OK, 0 rows affected (0.02 sec)

mysql> create table teste(codigo varchar(10), nome varchar(30));
Query OK, 0 rows affected (0.00 sec)

mysql> insert into teste(codigo,nome) values("123","teste1");
Query OK, 1 row affected (0.00 sec)

mysql> insert into teste(codigo,nome) values("122","teste2");
Query OK, 1 row affected (0.00 sec)

mysql> insert into teste(codigo,nome) values("124","teste4");
Query OK, 1 row affected (0.01 sec)

mysql> select * from teste;
+--------+--------+
| codigo | nome   |
+--------+--------+
| 123    | teste1 |
| 122    | teste2 |
| 124    | teste4 |
+--------+--------+
3 rows in set (0.00 sec)

mysql> quit
Bye
root@civil:/home/trindade#


crie o arquivo teste4.java com o seguinte conteúdo:

import java.sql.*;

public class teste4
{
    public static void main(String[] args)
    {
        String url = "jdbc:mysql://localhost:3306/biblioteca";
      String login = "admin";
      String senha = "123456";

        try
        {
         Class.forName("com.mysql.jdbc.Driver").newInstance();
            System.out.println("\nDriver carregado com sucesso!\n");
         try
         {
                 Connection conn = DriverManager.getConnection(url, login, senha);
                 try
                 {
                 String sql = "SELECT codigo,nome FROM teste";
                    Statement stm = conn.createStatement();
                    try
                    {
                     ResultSet rs = stm.executeQuery(sql);
                  while (rs.next())
                  {
                     String nome = rs.getString("nome");
                     String codigo = rs.getString("codigo");
                     System.out.println("Codigo: " + codigo + "\nNome: " +nome);
                     System.out.println("---------------------------------------");
                  }
                  System.out.println("\nConsulta realizada com sucesso!!!\n");                     
                    }
               catch (Exception ex)
               {
                  System.out.println("\nErro no resultset!");
               }
                 }
                  catch (Exception ex)
            {
               System.out.println("\nErro no statement!");
            }
         }
         catch (Exception ex)
         {
            System.out.println("\nErro no connection!");
         }   
        }
        catch (Exception ex)
        {
            System.out.println("\nDriver nao pode ser carregado!");
        }
    }
}


na linha de comando, compilando e executando:

trindade@civil:~/Desktop/biblioteca/teste4$ javac teste4.java; java teste4

Driver carregado com sucesso!

Codigo: 123
Nome: teste1
---------------------------------------
Codigo: 122
Nome: teste2
---------------------------------------
Codigo: 124
Nome: teste4
---------------------------------------

Consulta realizada com sucesso!!!

trindade@civil:~/Desktop/biblioteca/teste4$

Espero que seja útil para outros colegas.

Um abraço.


Ronaldo Trindade.

danilo.dias1

Fala Ronaldo, blz?

Então cara, segui a sua dica mas, continuo sem conseguir conectar o banco.
Olha o resultado que estou tendo:

init:
deps-jar:
compile-single:
run-single:
ClassNotFoundException: com.mysql.jdbc.Driver
SQLException: No suitable driver found for jdbc:mysql://localhost/teste
Exception in thread "main" java.lang.NullPointerException
        at JdbcCriandoTabelas.criaEmpregados(JdbcCriandoTabelas.java:85)
        at JdbcCriandoTabelas.pegueSelecionados(JdbcCriandoTabelas.java:45)
        at JdbcCriandoTabelas.main(JdbcCriandoTabelas.java:23)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 4 segundos)

Pode me ajudar?

Valeu,

Danilo.

RicardoSEP

Citação de: danilo.dias1 online 21 de Novembro de 2008, 11:33
Fala Ronaldo, blz?

Então cara, segui a sua dica mas, continuo sem conseguir conectar o banco.
Olha o resultado que estou tendo:

init:
deps-jar:
compile-single:
run-single:
ClassNotFoundException: com.mysql.jdbc.Driver
SQLException: No suitable driver found for jdbc:mysql://localhost/teste
Exception in thread "main" java.lang.NullPointerException
        at JdbcCriandoTabelas.criaEmpregados(JdbcCriandoTabelas.java:85)
        at JdbcCriandoTabelas.pegueSelecionados(JdbcCriandoTabelas.java:45)
        at JdbcCriandoTabelas.main(JdbcCriandoTabelas.java:23)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 4 segundos)

Pode me ajudar?

Valeu,

Danilo.

Fala cara, esse erro indica que você não adicionou o seu arquivo JDBC no classpath da sua aplicação. Ou seja falta adicionar o connector do MySQL na sua aplicação. Se você está usando o eclipse faça o seguinte:

1. Botão direito em cima do seu projeto > Properties
2. Vá em Java Build Path > Clique na aba Libraries
3. Clique em Add JARs...
4. Adicionar o connector (JDBC) do MySQL
5. Clique em OK e OK denovo

Pronto, tente rodar novamente.

Abraço

danilo.dias1

Fala Ricardo, blz?

Então, to usando o NetBeans, no linux(ubuntu).
Mudei o Classpath atraves do arquivo /etc/profile.
ctrl+c e ctrl+v no código que está neste tópico.
Mas está dando a seguinte mensagem:

Driver nao pode ser carregado!

Estou mandando o código exatamente como está na minha máquina:

import java.sql.*;

public class testeConexao
{
    public static void main(String[] args)
    {
        String url = "jdbc:mysql://localhost:3306/teste";
        String login = "root";
        String senha = "root";

        try
        {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            System.out.println("\nDriver carregado com sucesso!\n");
         try
         {
                 Connection conn = DriverManager.getConnection(url, login, senha);
                 try
                 {
                 String sql = "SELECT * FROM teste_1";
                    Statement stm = conn.createStatement();
                    try
                    {
                     ResultSet rs = stm.executeQuery(sql);
                  while (rs.next())
                  {
                     String nome = rs.getString("a");
                     //String codigo = rs.getString("codigo");
                     //System.out.println("Codigo: " + codigo + "\nNome: " +nome);
                     System.out.println("Número: " +nome);
                     System.out.println("---------------------------------------");
                  }
                  System.out.println("\nConsulta realizada com sucesso!!!\n");                     
                    }
               catch (Exception ex)
               {
                  System.out.println("\nErro no resultset!");
               }
                 }
                  catch (Exception ex)
            {
               System.out.println("\nErro no statement!");
            }
         }
         catch (Exception ex)
         {
            System.out.println("\nErro no connection!");
         }   
        }
        catch (Exception ex)
        {
            System.out.println("\nDriver nao pode ser carregado!");
        }
    }
}

Valeu,

Danilo.

RicardoSEP

Danilo, acredito que você esteja cometendo alguns erros na hora de adicionar o JDBC ao classpath do seu projeto.

Com isso, tomei a liberdade de escrever um tutorial em meu blog que ensina como conectar sua aplicação Java a uma banco MySQL usando o NetBeans. Acredito que você olhando lá poderá ver no que você está errando. Se tiver alguma dúvida, pode postar a dúvida aqui mesmo que eu respondo.

O tutorial está ebm simples e aborda desde o download do JDBC até a execução da aplicação com o envio de uma query ao banco e exibindo os resultados. Tudo com o NetBeans 6.5.

Espero que ajude. O link é esse: http://www.meupost.com/2008/11/25/como-conectar-o-java-ao-mysql-usando-o-netbeans/

danilo.dias1

VALEU MESMO RICARDO!!! Muito obrigado cara.
Estava adicionando errado o jdbc mesmo...
É EXCELENTE o seu tutorial!!!

Danilo.

lightboy

O post do Ricardo me ajudou, mas tive que pesquisar o novo endereço do seu site e da página correspondente:
http://www.ricardogiaviti.com.br/2008/11/como-conectar-o-java-ao-mysql-usando-o-netbeans/

E para quem instalou o JDBC pelo repositório com o comando
sudo apt-get install libmysql-java
deve adicionar o arquivo /usr/share/java/mysql-connector-java-5.1.10.jar
Linux user #491316 | Ubuntu user #27683