Conectando Java ao MySQL no Ubuntu

Publicado por Ronaldo Trindade em 01/12/2007

[ Hits: 29.703 ]

 


Conectando Java ao MySQL no Ubuntu



Pessoal, estou aprendendo java e como tive dificuldades em conectá-lo 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 diretório /usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/ext/.

Criar no MySQL o banco: biblioteca

# 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

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:

$ 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!!!

Espero que seja útil para outros colegas.

Um abraço.

Ronaldo Trindade.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Resolvendo erro do servidor Tomcat no Eclipse: "Cannot create a server using the selected type"

Problemas com o classpath e o driver do MySQL no Java

ERP rodando em plataforma Linux

Vídeo tutoriais: Agenda com NetBeans e MySQL

Logs do Squid de forma legível

  

Comentários
[1] Comentário enviado por arvdigo em 01/01/2008 - 16:29h

Apenas uma contribuição para quem não tenha muita experiência com o MySQL.
Antes de executar a linha
mysql> create table teste(codigo varchar(10), nome varchar(30));
é necessário selecionar a base de dados de interesse. Isso é feito através do seguinte comando:
mysql> use biblioteca;

Vlw

[2] Comentário enviado por ramon.rdm em 25/04/2009 - 21:56h

Cara valeu a dica!!!!
Estava aqui quebrando cabeça, e com uns ajustes a minha realidade consegui fazer a conexao com o banco mysql.
Muito bom exemplo para quem precisa aprender rápido a fazer uma conexo com o banco de dados e java!

Valeu Ronaldo!

[3] Comentário enviado por edivandoflf em 30/06/2010 - 10:27h

Valeu pela dica amigo!

[4] Comentário enviado por jacsonfh em 13/12/2012 - 23:58h

Valeu cara, um parte do seu trabalho me ajudou muito.

[5] Comentário enviado por jacsonfh em 14/12/2012 - 00:22h

Mais um dica para quem está aprendendo como eu.


//Caminho do pacote
package br.com.jfh.mysql.jdbc;

//Imports
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

/**
*
* @author jacsonfh
* @version 0.1
*/

public class AcessoBanco {

//Não estou tratando as Exceptions intensionalmente para ver o código puro e testar.
public static void main(String[] args) throws Exception {
String sql = "SELECT * FROM dti.documentos";
String url = "jdbc:mysql://localhost:3306/dti";
try (java.sql.Connection con = DriverManager.getConnection(url, "root", "root");
PreparedStatement stm = con.prepareStatement(sql);
ResultSet rs = stm.executeQuery()) {
while (rs.next()) {
String s = rs.getString("iddocumentos")
+ "; " + rs.getString("titulo")
+ "; " + rs.getString("descricao")
+ "; " + rs.getString("datacria")
+ "; " + rs.getString("dataaltera")
+ "; " + rs.getString("anexos");

String tipo = rs.getString("idtipo");
String sqltipo = "SELECT * FROM dti.tipos";
PreparedStatement stm2 = con.prepareStatement(sqltipo);
ResultSet rstipo = stm2.executeQuery()

){
while (rstipo.next()) {
if (rstipo.getString("idtipos").equals(rs.getString("idtipo"))) {
s = s + "; " + rstipo.getString("descricao");
}
}
System.out.println(s);
}
}
}
}



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts