Ola Pessoal! Após esse feriadão e muitos ovinhos de páscoa, fiquei pensando no que postar. Bem, em uma bela praia aqui na Bahia veio em minha mente as dificuldades e curiosidades que tive quando iniciei com Java. Que foram:
-
Como conectar uma class java à um BD ?
-
Será que com essa minha simples classe “Hello World” posso conectar a um BD ou é preciso de algo mais complexo?
Hoje vamos para um post bem mais técnico. Eu senti isso logo depois de aprender os fundamentos Java, foi o que veio logo na minha mente.
Bem, a partir disso, pensei: “Que tal ajudar aqueles que estão iniciando com java e mostrar como é simples fazer uma conexão com BD em Java”.
Usarei o eclipse + MySql como ferramenta.
Nessa primeira parte do post vou apenas mostrar como conectar à um BD (nesse caso vamos usar o MySQL). Na segunda parte vamos, através de códigos Java, inserir /recuperar informações no Banco de dados.
Lets go..
Leitura recomendada:
Nota: Irei explicar apenas pontos cruciais para funcionamento, assuntos relacionados a conceitos básicos do java e eclipse. Não serão abordados assuntos, tais como: importação, encapsulamento, criar projeto no eclipse, criar nova classe, compilar etc.
Outro detalhe importante, muitas das explicações estão no código no formato de comentário, isso para que o post não fique muito grande e que você entenda o que está sendo explicado com o código do lado.
Requisitos: Para este post é necessário ter os softwares a seguir instalados e configurados na máquina. A instalação dos softwares listados a seguir não levará mais que 30min, uma vez feito o download.
-
Mysql 5.0: Instale no modo padrão, ou seja, siga a instalação sem mudar nada, não esqueça da senha de root.
-
Connector MySql (MySQL Connector/J — for connecting to MySQL from Java) : para instalação descompacte o arquivo mysql-connector-java-5.1.7-bin.jar em LOCAL_INSTALACAO_JAVA_NA_SUA_MAQUINA\Java\jdk1.5.0\jre\lib\ext
na minha máquina: C:\Program Files\Java\jdk1.5.0\jre\lib\ext -
Java 1.5/superior: tutorial de instalação confira.
-
GUI Mysql Tool: muito bom para executar comandos sql, é opcional baixá-lo, mas recomendo, pois digitar o comando sql via prompt não é tão legal quanto usar o GUI. Esse deve ser instalado após a instalação do mysql. (Single bundle including all GUI tools (MySQL Administrator, MySQL QueryBrowser, MySQL MigrationToolkit and MySQL Workbench)
Cenário: Aqui está nosso cenário:
-
Teremos duas classes: 1. para conexão com o BD ; 2. uma class que testa a conexão
-
Crie um projeto no eclipse e dê um nome, aqui vamos chamá-lo de usuario
-
Agora clique com o botão direito do mouse sobre o projeto e vamos adicionar o connector mysql ao projeto. Como o próprio nome já diz o conector é que vai fazer sua app (aplicação) “conversar com o BD”.
-
Agora clique no botão à esquerda ADD External JARs… e em seguida informe o caminho que está o conector.
-
Após adicionar o conector, basta dar um clique no botão ok. Sua tela deve ser semelhante a da imagem a seguir:
-
Crie uma classe sem o método main e chame esta de conexão (conexao.java)
Essa será a classe responsável por estabelecer a conexão com BD.
– Tanto a linha de obter o Driver quanto de obter a conexão deve ser inserida dentro do um
bloco try/catch, pois as classes de .sql sao exceções verificadas.
-
Para criar um usuário, basta abrir MySQL Administrator e logar como root.
-
Agora vamos criar nosso Schema. Se você está usando MySQL Query Browser (GUI) ele vai pedir um usuário, use o root e deixe a tela com a seguir (coloque sua senha e clique em ok):
-
Agora crie as tabelas usando o comando sql.
-
A seguir o comando sql, ou, usando o GUI, clique com o botão direito a direita e escolha Create Table.
create table usuarios (
nome varchar(50) NOT NULL default ‘) ;
-
Nesse post não iremos trabalhar com a tabela acima, mas já deixamos criada para a parte
-
Agora crie a classe a seguir para testar a conexão.
12. Agora compile a classe, não esqueça de certificar se o Mysql está executando.
Se tudo ocorrer como planejado, você deve ter uma mensagem como a seguinte na tela de output do eclipse. Um detalhe importante
Vou ficando por aqui e espero que tenham gostado do post. Abraço a todos.
Boa!! Garoto!!!
Lopes, lembra quando fizemos isso aí para um trabalho na facul?
Só que fizemos em C.
Ps. Eu achei muuuito mais simples em C do que em JAVA.
Não que seja complexo, mas a simplicidade do C é algo único!
Abração meu velho!!!
opa! Matux,
Verdade com C mais simples mesmo. Lembro sim desde trabalho na facul. Acho que foi ate para materia de Adonai.
abracao para vc tb.
Valeu Camilo, muito bom…eu sou iniciante em java..nao trab(trabalho com suporte) mas pretendo entrar na area…to estudando pra tirar certificação scjp em julho…obrigado pq realmente conexao com Bd é horrivel pra quem ta começanco..rs…
[]s
Ola,
Lopes, gostei muito de seus posts, valeu pela iniciativa, eu como iniciante, agradeço mto.
Obrigada,
OI,
Lopes, eu copilei e apareceu o drive,
assim: com.mysql.jdbc.Drive,
será o que aconteceu.
Verifica por favor,
opa! Adriana,
Dar uma olhada, o nome é Driver.
com.mysql.jdbc.Driver
flw! abraço.
está de parabéns Camilo, sou iniciante e me ajudou demais esse post seu ai ! muito obrigado !
Obrigado Vinicius 🙂 E bem vindo ao mundo Java.
MARAVILHOSO POST, GOSTARIA DE VER MAIS PESSOAS ASSIM COMO VC, Q ESTA VERDADEIRAMENTE GUIANDO OS INICIANTES, QUANDO QUIS FAZER MINHA PRIMEIRA CONEXAO COM JAVA E MYSQL, TODO MUNDO VINHA FALAR DE CLASSPATH E ETC, MAS EXPLICAR QUE É BOM, NADA!!!
JÁ VC NÃO, TA PENSANDO NOS INICIANTES… ISSO É OTIMO.
PARABENS!!!
[…] Conectado ao Mysql : veja como baixar, instalar e configurar o Mysql […]
boa garoto esse tutorial me ajudou mto a fazer meu projetinho aki. valeu.
abracos
Muito obrigado Camilo, me ajudou muito!
Camilo parabéns pelo tutorial. Lembro que baixei um tutorial seu em 1999 que é um executavel e tinha um patrocinio seu num carro adesivado.
[ ]s
olá Marcelo,
Obrigado pelo feedback. Mas, acho que vc se confundiu com a respeito do Camilo, pois em 1999 eu so tinha 12 anos e ainda nao mexia profissionalmente com TI, era so game game game. abracos,
Camilo
Foi muito bom o tutorial! Parabéns por saber ajudar a resolver problemas!
Att
O meu aparece com.mysql.jdbc.Driver em vez de Connection opened. Será que tem algum erro de lógica? Pois ele o Eclipse não reporta erro algum…
Abs e bom estudo
ola Adriano,
Eh erro de configuracao, reveja ai, o que está acontecendo, lembrando que a mensagem que vc citou nada mais eh que um println que eu criei e nao automatica do jdbc.
abracos,
Bom dia pessoal, preciso fazer um jogo de perguntas e respostas, eu não entendo nada de banco de dados, gostaria de saber se vcs poderiam me dar um força preciso muito terminar este jogo.
Tentei ussar access, e mysql, deu falha se for possivel me ajudar, desde da parte do painel de controle em opções ferramentas administrativas, ate a parte do codigo.
é com urgencia brigada.
Camilo…
Muito bom o tutorial, sempre pensei que seria muito mais complexo a conexão. Obrigada pela iniciativa!!!
opa! Camila,
Tb, sempre pensei que era complexo e dificil fazer uma conexão bd com Java, uma vez que em outras tecnologias que tinha usado, era so clicar, e no Java, nao é bem assim, há IDEs que tentam ate dar uma força, mas colocar a mão no code, sempre vai ter, isso é bom que o programador sabe o que está fazendo e acontecendo em sua app.
obrigado pelo feedback. acompanhe os novos posts. novo endereco
abracos,
Blz Camilo,
Duvida!
Quando executo meu programa é imprimido apenas uma messagem
“com.mysql.jbdc.Driver”
Não imprimi ” connection opened”
Valeu!
Allan,
a mensagem “connection opened” nao é default da configuracao, observe q este valor eu atribuir a uma variavel.
flw.
Ola Camilo,
O error refere se a SQLException e
como posso corrigir isso?
Obrigado!
Olá, tentei fazer o mesmo seguindo todos os passos, recebo a seguinte mensagem quando tento conectar:
Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.ConnectException
MESSAGE: Connection refused: connect
STACKTRACE:
olá Josue,
A mensagem informa que a conexao foi recusada, veja se o usuario existe e se ele tem permissao para conectar ao banco que vc tentou.
flw.
Muito bom o post, parabéns.
Agora falta dar continuidade em: Como fazer um select.
olá Dinho! Há um post, no nosso novo url http://www.camilolopes.com.br 🙂
abracos,
Olá
Trabalho com Access e VBasic à muitos anos mas gostaria de começar a utilizar o Eclipse para criar aplicações com formulários e acesso a BD.
Podem me informar se em Eclipse existe alguma ferramenta fácil de criar formulários e relatórios à semelhança do Access?
Obrigado
Júlio
olá Júlio,
como vc vem de de uma ferramenta de drag-drop é comum sentir falta disso no eclipse, a resposta que ti dou é que não há um plugin eficiente open-source que faça o que vc quer, eu particulamente não conheço nenhum que faça o que vc espera semelhante ao VB. fazer na mão é mais eficiente. para formulario, dar uma olhada no jasper e ireport, são dois frameworks mais usados.
flw.
Muito Obriigada, Camilo!
Você ajudou muito!!
Agora o seu blog vai ser um “livro de cabeceira”… =D
Eu trabalho com qualidade de software, mas estou gostando muito da área de desenvolvimento! A facul dá uma boa base, mas pesquisar é sempre necessário… na verdade é Fundamental!
Forte abraço
opa! que bom :). O novo endereço do blog: http://www.camilolopes.com.br 🙂
abracos,
Galera que está tendo problema com a impressão do nome do driver.
altera!
baixa a versão que ele usou e segue o tutorial desde o começo.
usei esse driver:
http://www.java2s.com/Code/Jar/MNOPQR/Downloadmysqlconnectorjava517binjar.htm
vlw Camilo!
Na minha primeira execução, apareceu o nome do driver no console do eclipse também, como vocês haviam comentado.
Então eu pus um extends na classe iniciar e executou normalmente
public class iniciar extends conexao{
//comandos
}
Galera, não se trata de driver … tem que colocar o usuario e senha, se tiver, senão não conecta mesmo …
String userName = “root”;
String password = “pass”;
Camilo,
Muito obrigado seu post foi de uma ajuda incrivel, estou cursando sistemas e ainda tenho dificuldade com algumas coisas.
Muito obrigado pela ajuda, abraço
Olá Camilo!
Após dois dias me debatendo com a instalação do Driver, com seu post resolvi em alguns minutos!
Valeu! 😉