Conheça também: Onmasters . Ofertas . Divulgue! . Vai.la . Geraboleto . Baixa.la . Assista.la . Joga.la
» Início » Programação » Java » Conexão com banco de dados -->
 
Avaliação: | Publicado em: 10/06/2007
Conexão com banco de dados
Dayvid Lima Desenvolvedor Java há mais de 5 anos, atualmente consultor java em empresa multinacional utilizando recursos avançados da tecnologia J2EE com servidores de aplicação em plataforma Solaris para gerenciamento de redes e integração de sistemas.




Agora vamos as explicações, para a classe de banco "Banco.java".
As primeiras linhas fazem o import dos objetos de banco que iremos utilizar:
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.ResultSet;
    import java.sql.Statement;

A seguir tenho as constantes com dados pré-definidos de login/senha, driver de banco e endereço do servidor de banco:
    // driver que será utilizado
    private String DRIVER = "com.mysql.jdbc.Driver";

    // endereço do servidor e nome do banco
    // - localhost: endereço do servidor, nesse caso é um servidor local
    // - teste: nome da base de dados
    private String URL = "jdbc:mysql://localhost/teste";

    // usuário e senha para conexão com o banco
    private String USERNAME = "usuario";
    private String PASSWORD = "senha";

    // objeto do tipo Connection que será utilizado para guardar a referência com o banco após abrir a conexão
    private Connection conn;

O método construtor da nossa classe abre a conexão com o banco de dados:
    try {
        Class.forName(this.DRIVER);
        this.conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);
    
    } catch (ClassNotFoundException e){
        System.out.println("Não foi possivel encontrar o driver de banco: " + e.getMessage());
    } catch(SQLException e){
        System.out.println("Erro ao conectar com o banco: " + e.getMessage());
    }

O processo de execução de "querys" em um banco pode se resumir nos seguintes passos:
1 - criar conexão com o banco
2 - executar as "querys" (consultas)
3 - receber os valores retornados pelas consultas


Nosso método construtor já está abrindo a conexão com o banco, então irei comentar agora os itens 2 e 3.

2 - executar as "querys" (consultas)

Para executar as querys no banco devemos criar um objeto do tipo "Statement" ou "PrepareStatement", no nosso exemplo estamos utilizando o "Statement":

...
    Statement stmt = null;
    ResultSet rs = null;
        
    // query que será executada
    String sql = "SELECT cod_usuario, nome, email FROM usuario";
        
    try {
        // executa a query e guarda o resultado no RecordSet rs
        stmt = this.conn.createStatement();
        rs  = stmt.executeQuery(sql);
...


3 - receber os valores retornados pelas consultas

Para receber os dados retornados por uma query precisamos do "ResultSet":
    rs  = stmt.executeQuery(sql);

Através do resultSet podemos receber os dados de diversas formas, veja alguns exemplos:
    int x = rs.getInt("a");
    String s = rs.getString("b");
    float f = rs.getFloat("c");


Obs.: Note que sempre que utilizamos algo em um banco de dados, seja abrir uma conexão ou realizar uma consulta, devemos tratar as exceções que podem acontecer, por isso temos sempre o bloco "try" e "catch".


O arquivo "UsaBanco.java", apenas garante que os dados serão informados corretamente pelo usuário e chama a classe de banco para realizar as consultas e/ou alterações.


Para finalizar vamos aprender a compilar tudo isso, como o driver do banco está dentro de um arquivo .zip devemos colocar esse arquivo no path da máquina ou informar o seu endereco (incluindo o seu nome) através do comando -classpath no momento de execução do programa, caso contrário o java não irá encontrar o driver.

Primeiro você deve salvar os códigos em dois arquivos, Banco.java e UsaBanco.java respectivamente, faça do download do arquivo mysqlDriver.zip e coloque no mesmo diretório dos arquivos .java que você salvou.

Obs.: Não esqueça de alterar os dados de acesso ao banco na classe Banco.java, você deve colocar o endereço, o nome do banco e os dados de login e senha para acessar o mesmo.

Compile os códigos com o seguinte comando:
    javac *.java

Rode o programa com o seguinte comando:
    
Para o comando "incluir", devemos informar também um nome e um email para que seja gravado no banco de dados, ex.:
    java -classpath ./mysqlDriver.zip:./ UsaBanco incluir Dayvid nome@servidor.com

Para o comando "excluir", devemos informar também o código do usuário, ex.:
    java -classpath ./mysqlDriver.zip:./ UsaBanco excluir 1

Para o comando "listar", basta apenas informar o comando, ex.:
    java -classpath ./mysqlDriver.zip:./  UsaBanco listar

Bom com isso finalizamos mais um artigo, espero que tenham gostado e que este seja uma boa referência para quando vocês forem criar os seus próprios programas com acesso a bancos de dados.

Até o próximo.

Dayvid




Páginas: « Anterior 1 2 Próximo » 
Arquivos anexos ao artigo

Marcelo
Meus parabéns, muito bom o artigo, gostei bastante.
Abraço.
O artigo está muito bom, mas infelizmente ele também revela o descuido que até mesmo desenvolvedores experientes têm em relação à segurança. A instrução String sql = "DELETE FROM usuario WHERE cod_usuario='"codUsuario"'" jamais deveria ser executada sem uma validação contra o SQL Injection.
Valeu cara, muito bom seu artigo continue assim!
Tiago Hillebrandt <tiago@centralsbs.com.br>
Show de bola ;)

Parabéns pelo artigo! Ficou muito susse.

Se possível, solicito que nos próximos tutoriais insira os fontes junto em anexo, valeu!
John
Muito bom!
Soh uma dúvia....
Esse MysqlDriver, onde eu coloco ele?

Legal esse artigo! Me ajudou bastante...
Romulo Trindade <romulo.trindade@gmail.com>
Muito bom artigo, ajudou bastante!!!!
Gostei muito do artigo, me ajudou bastante...
Abraços!!!
Oi Dayvid,
li seu artigo e achei muito bom. Estou tentando fazer uma conexão com um banco de dados(SQL, MySQL...ou outro qualquer) para, obviamente, guardar informaçoes de meu programa. Entretando não consigo fazer esta conexão e muito menos gravar informações. Quando executo a main ele solta o 1° 'System.out' e depois eu escrevo, via console, mas não consigo interagir com o código.
Se voce pudesse me ajudar agradeceria,
Desde já agradeço a atençao
Aguardo contato,
Alberto

romulo moreira <romulo_hawk2@hotmail.com>
Muito bom, me arrependi de não ter achedo esse site antes...
Parabéns
oi Dayvid adorei esse artigo eu tirei engenharia Informática e agora estou a fazer o mcts(sql server 2005) sei n ser muito a sua área mas gostaria de poder contar com mais artigos seus p ajudar-me a entender melhor esta ferramenta bjao sucessos.
parabens amigo, é de muita ajuda esse codigo e bem explicado.

valeu !!