Objota O mundo orientado a objetos

Drive MySql de conexão para Eclipse

Posted on setembro 13, 2010

Olá, neste artigo iremos focar em como utilizar o drive de conexão do Mysql na IDE eclipse. Veremos passo-a-passo como instalar, o que é uma coisa muito simples, e alguns comandos SQL com Java.

Quem já me conhece sabe que costumo escrever sobre php. Então já deve ter visto o artigo sobre PDO. E advinha em que o PDO foi baseado? Em? O Java!

Vamos aos passos:

1º - Faça download do Eclipse se não estiver instalado, neste link:
http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/heliosr

- para este artigo sugiro utilizar a versão clássica para java SE.

2º - Faça download do drive de conexão com o banco de dados mysql. No próprio site deles, neste link:
http://www.mysql.com/downloads/connector/j/

Escolha o tipo de arquivo que deseja baixar e clique em download, você será redirecionado para uma página que irá sugerir um cadastro, porém isso não é necessário, clique no link
» No thanks, just take me to the downloads!” e siga em frente para fazer download.

Depois disso você será direcionado a página com o link de download. Clique no link, como na imagem abaixo, pode ser qualquer um com as bandeiras do Brasil:

3º - Agora precisamos do Banco de dados, claro! Você pode adquirir o banco de dados gratuitamente no próprio site Mysql.com, porém sua configuração iria estender um pouco mais a coisa, e até tornar um pouco mais complicado. Para tanto, utilize um gerenciador que já instala pra você o Mysql – entre outras coisas -, e uma interface de administrador. O mais fácil e que eu sugiro é o xampp.

O xampp é gratuito e de fácil instalação. Depois de instalado, para acionar o banco de dados mysql é só clicar no botão "start", e para usar o phpMyAdmin (interface para administração do banco) é preciso iniciar também o Apache com "start".

Veja um artigo utilizando o xampp.

Você pode fazer download do xampp neste link:
http://www.baixaki.com.br/download/xampp.htm

Bom, se tudo ocorreu bem até agora, você já deve ter os ingredientes:
Eclipse, drive de conexão, xampp  (cujo "m" da sigla é de Mysql)

Vamos por a mão na massa então! Instale o xampp e o eclipse.

Com o xampp iniciado clique em start para o mysql e o Apache;

Depois clique no botão admin para o mysql;

Ele irá abrir em seu browser padrão o phpMyAdmin. Crie um banco de dados com o nome tutorial.

não iremos entrar em maiores detalhes no phpMyAdmin, pois este não é o foco deste artigo, conteudo sobre phpMyAdmin

Interface phpmyadmin

Depois de criado, ele irá aparecer na lateral esquerda do browser. Clique no nome do Banco de dados que você acabou de criar com o nome tutorial e depois na aba SQL, à direita. E excute esta query, ou crie uma tabela equivalente.


CREATE TABLE IF NOT EXISTS `cliente` (

`id` int(11) NOT NULL AUTO_INCREMENT,

 `nome` varchar(80) NOT NULL,

 `fone` varchar(80) NOT NULL,

PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Após isso crie um novo projeto no eclipse com o nome de sua preferência. Dentro deste projeto crie as seguintes classes abaixo.

Antes de tudo, vamos esclarecer que este artigo não visa utilizar nenhum padrão de desenvolvimento específico. É somente um “Oi banco de dados”

package tutorial;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Conexao {

	// Carrega driver JDBC
	static {
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			throw new RuntimeException(e);
		}
	}

	//Obtem conexao com banco de dados
	public Connection obtemConexao() throws SQLException{
		return DriverManager.getConnection(
				"jdbc:mysql://localhost/tutorial","root","");
	}
}

package tutorial;

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

public class Cliente {

	private int idCliente;
	private String nome;
	private String fone;

	public Cliente(){

	}

	public Cliente(int idCliente) {
		this.idCliente = idCliente;
	}

	public Cliente(String nome, String fone) {
		this.nome = nome;
		this.fone = fone;
	}

	public int getIdCliente() {
		return idCliente;
	}

	public void setIdCliente (int idCliente) {
		this.idCliente = idCliente;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getFone() {
		return fone;
	}

	public void setFone(String fone) {
		this.fone = fone;
	}

	//  Inclusao de clientes
	public void incluir(Connection conn) {

		//Armazena a string contento o comando sql numa variavel.
		//Repare nos pontos de interrogação, pois eles serão preenchidos!

		String sqlInsert = "INSERT INTO cliente(nome, fone) VALUES ( ?, ?)";

		//inicio um objeto que prepara a instrução a ser executada.
		 //Veja o 'null'.Ele ainda está vazio

		PreparedStatement stm = null;
		try {

			 	//Agora sim. Atraves do objeto Connection eu
			 	//recupero o objeto 'preparador de instrução'.
			 	//veja que já inseri a variavel que tem o comando sql!

			stm = conn.prepareStatement(sqlInsert);

			 //Lembra dos pontos de interrogação, no seu comando sql?
			 //o método setString seta estes pontos de interrogação.
			 //substituindo-os pelo valor que vem no segundo parâmetro.
			 //Portanto...

			//Aqui, substitui a primeira interrogação pelo nome do cliente
			stm.setString(1, getNome());

			//Aqui, substitui a segunda interrogação pelo fone (telefone) do cliente
			stm.setString(2, getFone());

			//E finalmente depois de tudo devidamente preparado ele chama
			// o comando execute()
			stm.execute();

		} catch (Exception e) {
			//Caso tenha uma exceção printa na tela
			e.printStackTrace();
				try {
					//Aqui ele 'tenta' retroceder, na ação que deu errado.
					// quese um Ctrl+Z da vida.
					conn.rollback();
				} catch (SQLException e1) {
					System.out.print(e1.getStackTrace());
				}
		} finally {
			// Comando finally sempre é executado
			if (stm != null) {
				try {
					// Encerra as operações.
					stm.close();
				} catch (SQLException e1) {
					System.out.print(e1.getStackTrace());
				}
			}
		}
	}

	public void buscar(Connection conn) {

		String sqlSelect = "SELECT nome, fone FROM cliente WHERE cliente.id = ?";

		PreparedStatement stm = null;

		  // Aqui temos uma nova estrela no pauco.
		  // O objeto ResultSet é responsavel por manipular
		  // os resultados de uma query de busca.

		ResultSet rs = null;

		try {
			//vide explicaçao anterior
			stm = conn.prepareStatement(sqlSelect);

			//ponto de interrogação por valor getIdCliente()
			stm.setInt(1, getIdCliente());

			//O comando abaixo retorna um objeto ResultSet
			//com os valores dos dados buscados.

			rs = stm.executeQuery();

			//use next() para verificar se ele veio preenchido
			//de dados. Ele também pode ser usado em um while,
			//para querys que resultem em mais de um registro.

			if (rs.next()){

				//Acima no nosso select foi declarado:
				//SELECT nome, fone FROM..
				//portanto o 1 = nome e o
				//2 = fone

				//getString(1) refere-se ao atributo 'nome' da nossa query
				this.setNome(rs.getString(1));

				//Já o getString(2) refere-se ao atributo 'fone'
				this.setFone(rs.getString(2));
			}

		} catch (Exception e) {
			e.printStackTrace();
				try {
					conn.rollback();
				} catch (SQLException e1) {
					System.out.print(e1.getStackTrace());
				}
		} finally {
			if (stm != null) {
				try {
					stm.close();
				} catch (SQLException e1) {
					System.out.print(e1.getStackTrace());
				}
			}
		}
	}
}

package tutorial;

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

 public class Teste {

    public static void main(String[] args) {

      Connection conn = null;

      Cliente cl;

      try {

      // obtem conexao com o banco
    	 Conexao bd = new Conexao();
         conn = bd.obtemConexao();

         conn.setAutoCommit(false);

      //  Inclusao do Primeiro Cliente
         cl = new Cliente("Mariana Soares", "1127991999");
         cl.incluir(conn);

      // Inclusao do Segundo Cliente
         cl = new Cliente();
         cl.setNome("João Neves");
         cl.setFone("1160606161");
         cl.incluir(conn);

      // Inclusao do Terceiro Cliente
         cl = new Cliente("Maria Oliveira", "1121212121");
         cl.incluir(conn);

      // efetiva inclusoes
         conn.commit();
         System.out.println("Inclusão concluída");
         System.out.println("Buscando...");

      // Busca Cliente com id 2
         cl = new Cliente(2);
         cl.buscar(conn);

         String saida = "Nome: "+cl.getNome()+
         				 "\nTelefone: "+cl.getFone()+
         				 "\nid: "+cl.getIdCliente();

         System.out.println(saida);
      }
          catch (Exception e) {
            e.printStackTrace();
            if (conn != null) {
               try {
                  conn.rollback();
               }
                   catch (SQLException e1) {
                     System.out.print(e1.getStackTrace());
                  }
            }
         }
      finally {
         if (conn != null) {
            try {
               conn.close();
            }
                catch (SQLException e1) {
                  System.out.print(e1.getStackTrace());
               }
         }
      }
      System.exit(0);
    }
}

Veja minha estrutura para este projeto:

Depois que as classes já estiverem ok iremos adicionar aquele drive ao nosso projeto. Para isso clique com o botão direito sobre o seu projeto.
Siga o caminho: Build Path > Configure Build Path >
escolha a aba Libraries.
Agora clique no botão “Add External JARs...”
Encontre o drive que você baixou, com extensão “.JAR”. Clique nele, depois em Abrir.
(ele precisa estar descompactado, ele era um .zip lembra?)
Pronto seu driver já foi instalado.

Para testar a coisa toda:

O xampp deve estar ligado, com mysql e apache iniciados. phpMyAdmin aberto, para você checar as alterações na sua tabela.

O script foi feito para inserir  três clientes toda vez que for rodado, e buscar um pelo id. Rode a classe Teste, agora veja o resultado no phpMyAdmin. Para atualizar a visualização, basta clicar na aba visualizar.

Esse artigo fica por aqui, qualquer dúvida postem. Obrigado e até a próxima!

Posted by Rodrigo Ireno

Comentários (8) Trackbacks (0)
  1. Fla rodrigão. blz?
    Ficou show tem umas coisas que eu precisava.
    Axo que só faltou explicar oque faz cada comando para manipular o banco.
    É onde esta minha maior dificuldade.

  2. Excelente tutorial, me ajudou muito. Estava querendo utilizar o mysql do xampp mas não sabia como. Obrigado, abraço.

  3. Vlw cara muito bom tutorial, me ajudou bastante.
    abraços.

  4. Bom dia Rodrigão tudo bem estou a 2 meses tentando solucionar este problema e não consigo! DE JEITO NENHUM, ME AJUDE POR FAVOR!! Bem vamos la….

    Eu tenho um sistema de loja virtual com estrtura de pasta mvc+l, o “OPENCART”, INSTALEI O XAMPP ESTRUTUREI TODA A MINHA LOJA E QUIS FAZER DE MEU PC O SERVIDOR, ENTÃO EXTERNEI MEU SITE COMO TESTE PELO http://WWW.NO-IP.COM,

    O MEU PROBLEMA

    ELE NÃO LE O BANCO DE DADOS EM OUTRO PC MESMO AQUI NA MINHA REDE, EM CASA, SÓ FUNCIONA BEM NO MEU PC.

    ELE NÃO LE O BANCO DE DADOS. POR FAVOR ME AJUDE…..

    OBS: SOU LEIGO NO ASSUNTO ESTOU APRENDENDO AGORA, E O SITE NO NO-IP É ESTE http://menucardapio.sytes.net/

  5. Parabéns, simples e muito prático. Me ajudou muito. Obrigado!

  6. O Tutorial é bem simples e prático, mas acredito que poderia ser melhor, os códigos fazem inserção e leitura dos dados, faltou atualização e deleção das informações – mas bem que já deu pra ter uma noção de como fazer, e uma outra coisa normalmente as informações não vem de um arquivo java e sim são inseridas no BD através de uma página que aciona esses códigos java.
    Na minha visão ficaria bem melhor se contemplassem esses itens que eu citei.


Leave a comment

Sem trackbacks