Dev (Back & Front)ARTIGO

Criando conexão Java + BD

No artigo de hoje vou mostrar como conectar uma classe Java com um BD. Nesse caso, vamos usar o MySQL.

Quando iniciei meus estudos eu sempre tive as seguintes dúvidas:

  • como conectar uma class java com um BD?
  • será que essa minha simples classe “Hello World” poderia conectar ao um BD? Ou é preciso de algo mais complexo?

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 e ajudar os colegas que desejam brincar com outros BD, mas ainda não tiveram coragem de fazer a migração?”.

Lets go…

Leitura recomendada:

Exceções Java

Nota: Irei explicar apenas pontos cruciais para funcionamento. Assuntos relacionados a conceitos básicos do java e eclipse, como importação, encapsulamento etc ,criar projeto no eclipse, criar nova classe, compilar etc., não serão abordados. Outro detalhe importante: muitas das explicações estão no código no formato de comentário, isso para que o artigo não fique muito grande e que você entenda o que está sendo explicado com o código do lado.

Requisitos:

  • Eclipse: IDE
  • 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 (ou use o BD que você deseja)
  • 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
  • Acesse o site do BD que você vai quere testar e busque o Conector.
  • Java 1.5/superior
  • GUI Mysql Tool: muito bom para executar comandos sql. É opcional baixá-lo, mas eu recomendo, pois digitar comando sql via prompt não é tão legal quanto usar o GUI. Esse deve ser instalado após instalação do mysql (Single bundle including all GUI tools MySQL Administrator, MySQL QueryBrowser, MySQL MigrationToolkit and MySQL Workbench) . Veja se o BD que você vai utilizar oferece alguma ferramenta desse tipo.

Outros BD:

Banco de
dados
Caminho do Driver JDBC  String de Conexao
PostgreSql Org.postgresql.Driver jdbc:postgresql://<servidor>:<porta>/<banco>
Sql
Server
Com.microsoft.jdbc.sqlserver.SQLServerDriver Jdbc:microsoft:sqlserver://<servidor>:<porta>
Oracle Criar objeto OracleDataSource Jdbc:oracle:thin:<usuario>/<senha>@<servidor>:<porta>:<servico>
BD2 Com.ibm.db2.jcc.DB2Driver Jdbc:db2:<banco>
Progress Com.progress.sql.jdbc.JdbcProgresseDriver Jdbc:jdbcprogress:T:<servidor>:<porta>:<banco>

Um detalhe importante para quem for usar BD da Oracle é que este JDBC não necessita da chamada Class.forName() para carregar o driver na memória. Segundo a documentação do driver, basta criar um objeto do tipo OracleDataSource. Veja a seguir como ficaria seu código:

String url  = new String("jdbc:oracle:thin:<usuario>/<senha>@<servidor>:<porta>:<servico>");<br /><br />OracleDataSource ds = new OracleDataSource();<br /><br />ds.setURL(url);<br /><br />Connection com = ds.getConnection();<br /><br />Statement st = com.createStatement();<br /><br />ResultSet rs = st.executeQuery("Select * from  usuarios");

Aqui está nosso cenário. Teremos duas classes: 1. para conexão com o BD; 2. uma class que testa a conexão.

  1. crie um projeto no eclipse e dê um nome, aqui vamos chamá-lo de usuário
  2. agora clique com o botão direito do mouse sobre o projeto e vamos adicionar o connector mysql. Como o próprio nome já diz, o conector é que vai fazer sua app (aplicação) “conversar com o BD”.
  3. Agora clique no botão a esquerda ADD External JARs e, em seguida, informe o caminho que está o conector.
  4. Após adicionar o conector basta dar um clique no botão ok. Sua tela deve ser semelhante a essa:
  5. 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.

package aula2;<br />/* a seguir faco as importacoes da classe no pacote sql */<br />import java.sql.*;<br /><br />public class Conexao {<br /><br />    static String status=""; //variavel que vai informar o status da conexao<br /><br />public static Connection getConnection(){<br />            Connection conn=null; //crio uma variavel para conexao<br />try{<br />    /*Aqui é o driver do Mysql, porem cada BD tem o seu, entao se vc amanha pensar usar outro BD, tem que ver na documentação<br />     * com a linha a seguir estamos carregando o Driver para conexao*/<br /><br />    Class.forName("com.mysql.jdbc.Driver").newInstance();<br /><br />    /* ponto importante se usar um usuario diferente de root, verifique os privilegios deste com o BD.<br />     *  vc pode usar o Mysql administration e logar como root e ver os privilegios*/<br />    //a url é de acordo com a documentacao do driver, se for usar outro BD ver na documentacao<br /><br />    String url = "jdbc:mysql://localhost/test?user=lopes&password=123";<br />    conn = DriverManager.getConnection(url);<br /><br />    //se ocorrer tudo bem, ou seja, se conectar a linha a segui é executada   <br />    status = "Connection opened";}<br />catch (SQLException e) {<br />    status = e.getMessage(); // a variavel status vai receber a string da exceção<br />}catch (ClassNotFoundException e) {<br />    status = e.getMessage();<br /><br />}catch(Exception e){<br />    status = e.getMessage();}<br />return conn;}}<br /><br />- Tanto a linha de obter o Driver quanto de obter a conexão deve ser inserida dentro do um<br />bloco try/catch, pois as classes de .sql sao exceções verificadas.

06. Para criar um usuário basta abrir MySQL  Administrator e logar como root.

07. 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)

08. agora crie as tabelas usando o comando sql.

09. a seguir, o comando sql, ou, usando o GUI, clique com o botão direito a direita e escolha Create Table (Isso para Mysql). Mas você pode digitar o comando a seguir.

create table usuarios ( <br />nome varchar(50) NOT NULL default ') ;

10. não iremos trabalhar com a tabela acima, por enquanto.

11. agora crie a classe a seguir para testar a conexão.

package aula2;<br /><br />public class Iniciar {<br /><br />    public static void main(String[] args) {<br />        Conexao.getConnection();<br />        System.out.println(Conexao.status); //imprime o valor de status<br />        /* se a conexao falhar veremos pelo status */<br /><br />    }}

12. compile a classe. Não se esqueça de certificar se o Mysql (ou o seu BD) está executando.

Se tudo ocorrer como planejado você deve ter uma mensagem como a seguinte na tela de output do eclipse:

Vou ficando por aqui e espero que tenham gostado do post. Abraço a todos e até a próxima.

é Bacharel em Sistemas de Informação e Especialista em Gestão e Estratégia de Negócios. Trabalha com TI desde 2003 e possui as certificações SCJP 5 e SCM. Trabalhou na IBM Brasil como Analista Programador Java, passou pelo laboratório da Enterprise Computing Lab (ECL) HP como Software Engineer, Ci&amp;T como Engenheiro de Software em projeto JEE. Tem experiência internacional em Índia, Dubai e Londres. Atualmente é cofundador da ITSLabs (www.itslabs.com.br), uma start-up focada na criação de produtos web e mobile para start-ups. Também é autor dos livros "Guia do Exame SCJP", "Guia Prático JEE com Frameworks" e "TDD na prática".

Ver perfil