Artigos com o marcador j2se

Como conectar o Java ao MySQL usando o NetBeans

Pessoal, resolvi fazer esse artigo ensinando como se conectar a uma base de dados MySQL usando o Java porque vi que é uma dificuldade muito comum entre as pessoas que estão iniciando em programação. Espero que esse artigo ajude a todos que estão com essa dificuldade a sanarem suas dúvidas,

Esse artigo parte do pressuposto de que quem for seguir esse tutorial tenha o JDK (Java Development Kit) instalado assim como o MySQL e o NetBeans. Caso você não tenha nenhum deles, você pode baixar e instalar a partir dos sites oficiais. Abaixo segue os sites de cada um deles:

Para esse tutorial eu estou usando o JDK6, MySQL 5.0 e o NetBeans 6.5 rodando tudo em cima do Ubuntu 8.10 Intrepid Ibex.

O NetBeans possui algumas “facilidades” de conexão a banco de dados bem ao estilo “Next > Next > Ok”. Porém o tutorial foi feito na maneira tradicional.

Após tudo instalado hora de começar a colocar a mão na massa. O Java para se conectar a qualquer banco de dados precisa de um driver de conexão, esse driver é chamado de JDBC (Java Database Connectivity). Sem um JDBC não é possível fazer uma conexão a um banco de dados. Cada banco de dados possui seu próprio JDBC. Por exemplo a Oracle fornece um JDBC para ser usado em bancos Oracle, o PostGRESQL também fornece um JDBC para ser usado com o PostGRESQL e assim vai. Não é diferente com o MySQL. O pessoal do MySQL também disponibilizou um JDBC para ser usado em conexão Java – MySQL.

Um pouquinho mais de informação sobre os drivers JDBC pode ser encontrado aqui na Wikipedia.

Como o MySQL também nos fornece um JDBC, vamos baixa-lo do site oficial do MySQL. Endereço do JDBC é: http://dev.mysql.com/downloads/. No menu, clique em Connectors e depois em Connector/J. Agora é só fazer o download do JDBC. Feito o download descompacte o arquivo.

Vai ser descompactado vários arquivos como instruções e documentações mas o arquivo que nos interessa é um que termina com extensão .JAR. Até a finalização desse artigo o nome do JDBC do MySQL é mysql-connector-java-5.1.7-bin.jar

Esse é o JDBC que irá nos conectar a uma base MySQL. Guarde a localização desse arquivo. Agora vamos criar um banco de exemplo com alguns dados.

Se conecte ao MySQL com sua ferramenta favorita ou pelo console mesmo. Para esse artigo eu criei um banco com uma tabela e três colunas. Tudo bem simples. Se quiser seguir esse exemplo abaixo vai os script SQL para a criação. Basta rodar no banco. Fique a vontade para fazer o esquema de banco a sua maneira, só lembre de mais para frente no artigo adaptar o seu esquema de banco ao código.

Script SQL:

CREATE TABLE IF NOT EXISTS 'usuarios' (
'nome' varchar(50) NOT NULL,
'email' varchar(50) NOT NULL,
'idade' int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
INSERT INTO usuarios (nome, email, idade) VALUES
('Ricardo', 'ricardo@meuemail.com', 23),
('José', 'jose@seuemail.com', 29);

Beleza! Banco criado e alguns dados inseridos. Vamos para o NetBeans!

Abra a NetBeans e teremos uma tela inicial parecida com essa:

Vamos criar nosso projeto. Para isso faça:

  1. Arquivo > Novo Projeto;
  2. Escolha categoria: Java. Projeto: Aplicativo Java;
  3. Clique em Próximo;
  4. Coloque um nome para o projeto e clique em finalizar;

Próxima tela após clicar no botão Próximo. Aqui é onde definiremos o nome para o projeto e mais algumas configurações.

Nosso projeto foi criado.

Agora vamos adicionar o driver JDBC para que nossa aplicação consiga se conectar ao Banco de Dados. Para isso:

  1. Clique com o botão direito em cima do Projeto > Propriedades.
  2. Selecione a opção Bibliotecas e clique no botão Adicionar JARs/pasta.
  3. Vá até o JDBC que baixamos do site do MySQL selecione o arquivo .jar
  4. Clique em OK > OK

Pronto. O JDBC já foi adicionado a nossa aplicação. Agora vamos fazer um pouco de código

Nós iremos fazer toda a conexão com banco de dados direto da classe principal que o NetBeans nos forneceu. Logicamente essa metodologia não segue as melhores práticas da programação e todo o resto, mas serve para você ter uma idéia de pelo menos como conectar sua aplicação a uma base MySQL.

O código gerado pelo NetBeans está assim:

package mysqlconnection;
 
public class Main {
 
     public static void main(String[] args) {
          //Nosso código vai aqui
     }
}

Vamos criar a conexão e vamos fazer um select básico no banco. Abaixo segue o código com a conexão, com o envio do select e o tratamento de exceção. O código está comentado com o que cada linha está fazendo:

package mysqlconnection;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
public class Main {
 
     public static void main(String[] args) {
           String driver = "com.mysql.jdbc.Driver"; //Classe do driver JDBC
           String banco = "MeuBD"; //Nome do Banco criado
           String host = "localhost"; //Maquina onde está o banco
           String str_conn = "jdbc:mysql://" + host + ":3306/" + banco; //URL de conexão
           String usuario = "root"; //Usuário do banco
           String senha = ""; //Senha de conexão
 
           try {
               Class.forName(driver); //Carrega o driver
 
               //Obtém a conexão com o banco
               Connection conn = DriverManager.getConnection(str_conn, usuario, senha);
 
               //Cria um statement para podermos mandar um SQL para o banco
               Statement stmt = conn.createStatement();
 
               //Mandamos o SQL para o banco e obtemos um ResultSet
               String sql = "SELECT * FROM usuarios";
               ResultSet rs = stmt.executeQuery(sql);
 
               //Percorrendo o ResultSet e obtendo os valores do banco
              while (rs.next()) {
                    System.out.println(rs.getString("nome"));
                    System.out.println(rs.getString("email"));
                    System.out.println(rs.getInt("idade"));
                    System.out.println("====================================");
             }
        } 
        catch (ClassNotFoundException ex) {
             System.out.println("Não foi possível carregar o driver.");
             ex.printStackTrace();
        }
        catch (SQLException ex) {
             System.out.println("Problema com o SQL");
             ex.printStackTrace();
       }
    }
}

Repare que na obtenção dos objetos a partir do ResultSet nós usamos como chave o nome da coluna no banco de dados.

Se estiver tudo certo, já podemos executar nosso código. Para isso faça aperta F6 ou clique no “Play”. Se tudo deu certo e se você utilizou o esquema de banco fornecido nesse post, a saída para console será assim:

run:
Ricardo
ricardo@meuemail.com
23
====================================
José
jose@seuemail.com
29
====================================
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

Bacana hein?!

É isso pessoal, fizemos uma conexão bem simples a uma base de dados MySQL usando Java e JDBC. Espero que tenham gostado do artigo e até a próxima!

  • Share/Bookmark

Dica rápida: Formatando um número para moeda em Java

Dica rápida em bem simples para nossos leitores. Para formatarmos um número em formato de moeda usando Java, basta fazermos:

import java.text.NumberFormat;
 
public class Main {
 
	public static void main(String[] args) {
		//Gera um número aleatório
		double pagamento = Math.random() * 10000;
		NumberFormat nf = NumberFormat.getCurrencyInstance();
		System.out.println("Seu pagamento é " + nf.format(pagamento));
	}
}

Saída:

Seu pagamento é R$ 7.722,51

No código acima não usamos o objeto Locale no método getCurrencyInstance(). Isso quer dizer que o Java busca no SO a formatação de moeda. Se você quiser setar uma formatação de moeda diferente, então você pode usar o objeto Locale da seguinte forma:

import java.text.NumberFormat;
import java.util.Locale;
 
public class Main {
 
	public static void main(String[] args) {
		//Gera um número aleatório
		double pagamento = Math.random() * 10000;
		NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.US);
		System.out.println("Seu pagamento é " + nf.format(pagamento));
	}
}

Saída:

Seu pagamento é $4,337.63

O Locale.US indica que queremos a formatação de moeda para o dólar americano.

E isso é tudo pessoal. Até a próxima!

  • Share/Bookmark

Como obter informações do sistema operacional usando Java

Essa é uma dica rápida para quem programa Java e precisa saber de algumas informações do sistema operacional ou do próprio Java em que a aplicação está rodando. Dependendo dessas informações, podemos tomar decisões em código específicas para um determinado sistema.

Para fazer isso, o Java nos fornece o método getProperty(String key) da classe System.

O parâmetro key é uma string que fornecemos ao método para que ele nos retorne as informação que desejamos, como nome do sistema operacional, versão do java…

Vamos ao exemplo:

package com.meupost.main;
 
public class Main {
 
	public static void main(String[] args) {
 
		String vendor = System.getProperty("java.vendor");
		String osName = System.getProperty("os.name");
		String separadorArquivo = System.getProperty("file.separator");
 
		System.out.println("Java Vendor: " + vendor);
		System.out.println("Sistem Operacional: " + osName);
		System.out.println("Separador de Arquivos: " + separadorArquivo);
 
	}
}

No trecho de código acima é atribuído nas Strings informações como o vendor, o nome do sistema operacional e o caractere que o sistema operacional usa para separar os arquivos. Se o código acima fosse executado em Windows XP, o resultado seria:

Java Vendor: Sun Microsystems Inc.
Sistema Operacional: Windows XP
Separador de Arquivos:

Se fosse executado em Linux:

Java Vendor: Sun Microsystems Inc.
Sistema Operacional: Linux
Separador de Arquivos: /

Abaixo segue uma lista com as chaves que podem ser passadas como parâmetro no método getProperty().

Key Description of Associated Value
java.version Java Runtime Environment version
java.vendor Java Runtime Environment vendor
java.vendor.url Java vendor URL
java.home Java installation directory
java.vm.specification.version Java Virtual Machine specification version
java.vm.specification.vendor Java Virtual Machine specification vendor
java.vm.specification.name Java Virtual Machine specification name
java.vm.version Java Virtual Machine implementation version
java.vm.vendor Java Virtual Machine implementation vendor
java.vm.name Java Virtual Machine implementation name
java.specification.version Java Runtime Environment specification version
java.specification.vendor Java Runtime Environment specification vendor
java.specification.name Java Runtime Environment specification name
java.class.version Java class format version number
java.class.path Java class path
java.library.path List of paths to search when loading libraries
java.io.tmpdir Default temp file path
java.compiler Name of JIT compiler to use
java.ext.dirs Path of extension directory or directories
os.name Operating system name
os.arch Operating system architecture
os.version Operating system version
file.separator File separator (“/” on UNIX)
path.separator Path separator (“:” on UNIX)
line.separator Line separator (“n” on UNIX)
user.name User’s account name
user.home User’s home directory
user.dir User’s current working directory
  • Share/Bookmark