Tag Archives: banco de dados

Conectando a um BD Access com Java

Eu sei que esse não é o foco principal do blog, mas é uma coisa que me pedem muito, então aí vai!

Vamos usar um Banco de Dados Acess com ODBC para conectar com o Java. Tentarei mostrar da forma mais simples possível.

Primeiramente, crie um banco de dados no Access e salve em alguma pasta FIXA do seu projeto (um exemplo, crie uma pasta bf na pasta raiz do seu projeto).

Agora abra o Painel de Controle do Windows, vá em Ferramentas Administrativas -> Fonte de Dados (ODBC). Você pode selecionar a aba Fontes de Dados do Sistema, e então clique em Adicionar. Selecione Driver do Microsoft Access (*.mdb) e clique em Concluir, agora coloque um nome para o Alias do seu banco (esse alias serve para interligar o Java ao Banco), clique em Selecionar e escolha o caminho do banco. Pronto, agora pressione OK e pronto! Vamos então para a melhor parte: Programação! =]

Na sua classe, importe:

import java.sql.*;

Ela é que contém as classes necessárias para se conectar e manipular o banco.

Agora, dentro da classe, você pode definir uns objetos, um Connection, que manipula a conexão em si, e um Statement, que manipula o banco com querys. Assim:

public Connection con;
public Statement stm;

Agora, para facilitar, crie um método chamado Connectar:

public void Conectar()
	{
		//JOptionPane.showMessageDialog(null, "Preparando para iniciar a conexão com o BD;");

		try
		{
			/* Tenta se conectar ao Driver */
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		}
		catch (ClassNotFoundException e)
		{
			JOptionPane.showMessageDialog(null, "Impossível carregar o Driver.");
			System.exit(0);
		}
		try
		{
			/* nomedobanco é o nome que você deu anteriormente ao seu alias */
			con = DriverManager.getConnection("jdbc:odbc:nomedobanco");
			stm = con.createStatement();
		}
		catch (SQLException sqle)
		{
			JOptionPane.showMessageDialog(null, "Problema ao conectar!");
			System.exit(0);
		}

		//JOptionPane.showMessageDialog(null, "Conectado com sucesso!");
	}

Você pode descomentar as linhas que mostram uma mensagem antes de se conectar e depois, só para ver como que é! ^^

Crie também uma função para desconectar, e se possível, chame-a antes de sair do seu programa:

public void Desconectar()
	{
		try
		{
			con.close();
		}
		catch (SQLException sqle)
		{
			JOptionPane.showMessageDialog(null, "Problema ao desconectar!");
			System.exit(0);
		}
	}

Basicamente, agora você já pode se conectar e desconectar ao banco de dados! Excelente não?

Tá, imagino agora que você se perguntou: “Mas como vou manipulá-lo agora?”! Hmm, Boa pergunta!

Para manipular o Banco de Dados em si, como fazer consultas, inserções, remoções, é necessário a utilização de SQL, portanto se você não sabe, é melhor estudar um pouco! hehehe

Então, voltando para o Java…

Lembra-se do objeto Statement que criamos? Então, ele é o ponto chave agora! Para executar uma query, você usa o método execute dele, assim:

stm.execute("INSERT INTO tabela(nome, idade) VALUES('Bruno', 17)");

Porém ele NÃO traz retorno algum, ou seja, se você quiser fazer uma consulta, por exemplo, tem que usar o método executeQuery, que retorna um objeto ResultSet, que contém todo o resgistro retornado do banco de dados, a partir da consulta.

try
{
	ResultSet rs = stm.executeQuery("SELECT * FROM tabela");
	while (rs.next())
	{
		JOptionPane.showMessageDialog(null, "Nome: " + rs.getString("nome") + " - Idade: " + rs.getInt("idade"));
	}
}
catch (SQLException e)
{
	JOptionPane.showMessageDialog(null,"" + e.getMessage(),"Erro",0);
}
finally
{
	rs.close();
}

O Objeto ResultSet, tem um método para pegar cada tipo do banco de dados. Dentro dele vai o parâmetro que é o nome do campo a ser pego!

Fácil? Não exatamente! Isso é muito básico, não inútil, mas básico. Portanto, você concerteza vai precisar de mais material, então acesse este magnífico site que você vai achar de tudo lá! =D

(Muito Obrigado ao ViniGodoy pela ajuda aqui! =D)

Valeu, até a próximaaa!

Google Buzz

Nova Storage Engine no MySQL!

Recentemente, Michael Widenius, um dos ‘pais’ do MySQL, anunciou uma nova storage engine para o MySQL, chamada MARIA, cujo nome é de sua terceira filha. Segundo ele, MARIA veio para substituir o MyISAM, na qual contava com alguns problemas, como o crash-storage, ou seja, se uma queda de energia fizesse com que o servidor MySQL se desligasse, possivelmente alguns dados seriam perdidos, mas com MARIA isso não ocorre mais, pois a engine foi projetada para ser mais segura.

Ou seja, agora você tem uma engine com acesso rápido, como a MyISAM, e mais segura!

Você pode baixar a nova versão do MySQL (5.1.23) que contém já esta engine, mas não é aconselhável, pois ainda é muito recente.

[Via: iMasters]

Google Buzz

Classe para pegar XML da Web

Eu estou começando a criar uma Classe para C++ para pegar XML da Web para serem parseados com o TinyXML. O nome da classe é DBXmlRequest. Com ela você pode pegar um arquivo XML de servidores WEB e salvar no Computador, retornar um ponteiro para a classe TiXmlDocument, ou simplismente pegar o conteúdo do arquivo como String.

Você pode, por exemplo, recuperar dados de um banco de dados com PHP e colocá-los num arquivo XML e então carregar no seu programa (adoro isso! hehehe).

Eu não conheço nenhuma Lib que faça isso, mas creio que existam várias. Então me deu vontade de criar! hehehe

Para isto, eu estou usando Winsock, dei uma boa estudada no protocolo HTTP e já consegui recuperar o arquivo em Texto, agora falta implementar a funcionalidade de retornar um objeto TiXmlDocument.

Se isso vai ser útil para alguém eu não sei, mas para mim vai! hehehe

Valeu!

Google Buzz