artigo SQL Magazine 03 - Conexões Com Delphi, VB.Net e Java Parte III – MySQL

Artigo da Revista SQL Magazine -Edição 3.

Nos artigos desta série, mostramos os acessos aos bancos de dados através de vários ambientes de desenvolvimento. Exploramos as conexões com Oracle e SQL Server utilizando Delphi, VB .Net e Java através do ADO no Delphi e VB .Net, DbExpress no Delphi e JDBC no Java. Nesta terceira e última parte, apresentaremos os procedimentos para conexão e visualização de dados com o MySQL.

O MySQL dispensa apresentações e se mostra um excelente produto em relação a performance, facilidade de utilização, distribuição, segurança, flexibilidade no conceito multi-plataforma garantindo sua instalação em vários sistemas operacionais. Empresas como Yahoo!, Lucent Technologies, Sony Pictures Digital Entertainment, Motorola, NASA, Silicon Graphics, HP, Xerox, Cisco e inúmeros provedores de acesso e hospedagem para Web utilizam o MySQL. A sua versão atual á a 4.0 release 4.0.12 e está disponível para download no endereço http://www.mysql.com/downloads/. Uma das grandes vantagens do MySQL é sua política de licenciamento e ser “Open Source”. Para os interessados, o código fonte da última versão em desenvolvimento (versão 4.1) está disponível para download em http://www.mysql.com/downloads/mysql-4.1.html. Maiores informações sobre o MySQL podem ser obtidas no site oficial do produto em www.mysql.com.

Tipos de Drivers

Antes de falarmos sobre os ambientes de desenvolvimento e procedimentos de conexão, analisemos os principais “Drivers” ou “Conectores”. Vamos analisar quatro tipos diferentes de Drivers, são eles:

MySQL Connector/J é um driver nativo que converte as chamadas JDBC num protocolo de rede utilizado pelo MySQL, permitindo os desenvolvedores Java implementem programas e applets que acessem uma banco de dados MySQL. Desenvolvido em Java, o MySQL Connector/J é um driver JDBC classe IV, ou seja, acessa diretamente o servidor de banco de dados sem a necessidade de uma aplicação cliente.

A versão atual deste driver é de 50 a 100% mais rápida que as versões anteriores, garantindo maior performance e estabilidade para um número maior de conexões. Suportam “streaming” result sets, obtendo uma quantidade maior de linhas sem utilizar em excesso a memória da estação cliente. Permite a manipulação de BLOB´s com tamanho até dois gigabytes, permite a utilização de campos do tipo Auto-Incremento em ferramentas e mapeamento objeto-relacional (vide artigo sobre o Hibernate na SQL Magazine nº 2) bem como a utilização em serviços EJB (Enterprise Java Beans) e CMP (Container Managed Persistence) que suportam JDBC 3.0.

O download do driver está no site oficial do MySQL nas seguintes versões:

O MySQL Connector/J foi validado e trabalha com várias ferramentas de desenvolvimento e servidores de aplicação. Entre elas podemos citar:

O MySQL Connector/ODBC também conhecido como MyODBC, é um driver que permite a conexão com um banco de dados MySQL utilizando a API ODBC ( Open Database Conectivit ) em todas as versões do Microsoft Windows e algumas plataformas Unix como (Linux, Sun Solaris, HP-UX, IBM AIX e Mac OS X), incluindo algumas aplicações e ambientes de desenvolvimento como o Microsoft Access, Microsoft Excel, e Borland Delphi bem como seu acesso através do ADO .Net. A versão atual destedriver é compatível com a especificação 2.50 do ODBC níve 0 e algumas funcionalidades dos níveis 1 e 2. A versão em desenvolvimento é compatível com a especificação 3.51 do ODBC. Maiores informações sobre a especificação ODBC podem ser obtidas no side da microsoft.

Os .NET modules são drivers implementados por terceiros, em sua maioria pagos, que permitem o acesso nativo a um banco de dados MySQL através da implementação ADO .Net do Microsoft .Net. Entre eles, destaquemos:

dbExpress é uma implementação da Borland que permite conexões com RDBMS para aplicações desenvolvidas em Delphi ou Kylix. Este driver ‘traduz’ para o banco de dados todas as chamadas da interface dbExpress, garantindo transparência ao desenvolvimento da aplicação cliente.

A Borland disponibiliza juntamente com a instalação do Delphi 7 ou Kylix, o driver dbExpress para conexão com o MySQL que é o dbexpmysql.dll e no Delphi, na instalação padrão, está na pasta C:\Arquivos de programas\Borland\Delphi7\Bin.

Os drivers dbExpress instalado com o delphi não necessitam de licença para distribuição, podendo ser enviados sem ônus, juntamente com a aplicação desenvolvida.

Um interessante é que na documentação sobre a implementação de drivers dbExpress da Borland, o banco de dados utilizado como exemplo nesta documentação é o MySQL.

Criando o banco de dados de exemplo

Através do MySQL Monitor, que está localizado em C:\mysql\bin\MySQL.Exe, criemos um banco de dados para exemplo deste artigo. Os comandos para criação do banco e dos registros estão na listagem 1 e devem ser executas um por vez na ordem apresentada:

CREATE DATABASE SQLMAGAZINE; USE SQLMAGAZINE; CREATE TABLE EMPREGADO (IDEMPREGADO INT NOT NULL, NOME VARCHAR(60), SALARIO FLOAT(7,2), PRIMARY KEY(IDEMPREGADO)); INSERT INTO EMPREGADO VALUES (1,’ANTÔNIO CARLOS’,240); INSERT INTO EMPREGADO VALUES (2,’MARIA DE LOURDES’,1240); INSERT INTO EMPREGADO VALUES (3,’JOSÉ EVERALDO’,1375.27);

listagem 1 - criação do banco de dados exemplo

Conectando com o Delphi utilizando DbExpress

Inicie um novo projeto através do menu ‘File/New/Application’ da barra de menu do Delphi.

No formulário principal, adicione o componente SQLConnection, localizado na paleta de componentes dbExpress conforme a figura 1. Com um duplo clique sobre o SQLConnection, acessa a caixa de diálogo dbExpress Connections e adicione uma nova conexão através do botão ‘+’. Será solicitada, conforme a figura 2, a informação sobre o nome do Driver. Para o exemplo, optaremos pelo MySQL. Na caixa de texto abaixo, digite o nome da conexão conforme a figura 2. Em seguida, é necessária a configuração dos parâmetros referentes ao endereço do servidor em HOSTNAME, nome do banco de dados em DATABASE e dos parâmetros referentes ao login no banco em USER_NAME e PASSWORD, como mostra a figura 3. O HOSTNAME 127.0.0.1 se refere a um banco de dados local e as informações de login são definidas na instalação do banco. Caso você esteja acessando um a servidor na rede, solicite a seu administrador as informações referentes ao login e localização do mesmo.

Após a configuração, adicionaremos alguns componentes para visualização e manutenção dos dados na tela. São eles:

  1. SimpleDataSet: Recebe a instrução SQL, envia para o banco e recebe os dados para serem manipulados. Deve ser ligado ao SQLConection através da propriedade Connection e na Propriedade DataSet.CommandText devemos ‘escrever’ a frase SELECT que irá retornar os dados. Poderemos digitar diretamente a instrução ou usar os assistentes de criação de instruções. Vejamos as instruções nas figuras 4 e 5.
  2. DataSource: Permite a visualização dos dados contidos no SimpleDataSet em controles visuais para serem manipulados pela interface. Deve ser ligado o SimpleDataSet configurado no item 1 através da propriedade DataSet no Object Inspector.
  3. DbGrid: Permite a visualização dos dados direcionados através do DataSource. Deve ser ligado ao DataSource configurado no item 2 através da propriedade DataSource.

figura 1– Componentes do dbExpress na IDE do Delphi

figura 2 – Caixa de diálogo para criação da nova conexão

figura 3 – Configurações da conexão

figura 4 – Configuração do SimpleDataSet

figura 5 – Assistente para configuração do CommandText

Após todas as configurações, colocar em funcionamento a aplicação com dbExpress é bastante simples. Poucas linhas de código garantem que a conexão seja aberta. Os dados serão retornados pela consulta e exibidos na tela. O componente SimpleDataSet após ser aberto, traz os dados para a aplicação cliente, permitindo que esses sejam manipulados completamente ‘desconectados’ do servidor de banco da dados e, somente depois da conclusão das operações, essas alterações serão enviadas para o servidor.

Os procedimentos implementados são os seguintes:

1) No evento OnCreate do formulário, os componentes SQLConnection e SimpleDataSet são abertos com os respectivos comandos:

SQLConnection.Open; SimpleDataSet.Open

2) No evento OnClose do formulário criado, os mesmos componentes descritos no passo um

são fechados explicitamente através dos comandos:

SimpleDataSet.Close; SQLConnection.Close;

3) A gravação das alterações efetuadas em tela é efetuada através do evento OnClick do

botão Gravar, cujo o componente será inserido na tela e localizado na paleta Standard.

Abaixo, está a implementação do código verificador de alterações pendentes e se existirem,

envia as mesmas para o banco de dados. O código é o seguinte:

if ( SimpleDataSet.ChangeCount > 0 ) then SimpleDataSet.ApplyUpdates(0);

4) Para cancelar as alterações, basta implementar o evento OnClick do botão de Cancelar

o seguinte código (que também verifica se existem alterações pendentes e cancela as mesmas

caso existam):

if ( SimpleDataSet.ChangeCount > 0 ) then SimpleDataSet.CancelUpdates;

Conectando com VB .Net com ADO .Net utilizando o Driver MySQLDriverCS

A implementação para acesso ao MySQL utilizando Java é idêntica a utilizada para o acesso ao Oracle e SQL Server. Isso garante total reusabilidade do código para diversos servidores de banco de dados. As únicas diferenças estão no registro do driver e na montagem da String de Conexão. A listagem 2 mostra uma aplicação que abre uma conexão com o servidor MySQL, executa uma instrução SELECT e exibe na tela os dados retornados. Analisando esta listagem, temos:

01 import java.sql.*; 02 03 public class Principal 04 { public static void main (String[] args) 05 { Connection conn = null; 06 try 07 { 08 DriverManager.registerDriver ( new org.gjt.mm.mysql.Driver() ); 09 conn = DriverManager.getConnection("jdbc:mysql://localhost/sqlmagazine?user=Alex_Oak"); 10 } 11 12 catch (SQLException e) 13 { System.out.println ('\n' + "Erro na conexão com o banco."); 14 e.printStackTrace(); 15 System.exit(1); 16 } 17 18 try 19 { 20 PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM EMPREGADO"); 21 ResultSet rs = pstmt.executeQuery(); 22 23 while ( rs.next() ) 24 { System.out.println(rs.getInt("IDEMPREGADO") + " - " + 25 rs.getString("NOME") + " - " + rs.getDouble("SALARIO")); 26 } 27 28 pstmt.close(); 29 conn.close(); 30 } 31 catch (SQLException e) 32 { System.out.println ('\n' + "Erro ao recuperar dados no banco."); 33 e.printStackTrace(); 34 System.exit(1); 35 } 36 } 37 }

listagem 2 – Aplicação console para teste da conexão com MySQL

Veremos os comentários sobre as principais linhas do programa:

Conclusão

Ao longo desses três artigos, verificamos muitas semelhanças nas conexões das aplicações com os banco de dados. Essas semelhanças facilitam a vida de quem desenvolve sistemas que acessam diversos banco de dados. Utilizando os drives, gratuitos ou não, efetuamos conexões utilizando um servidor MySQL. Cabe o desenvolvedor estabelecer qual é a melhor solução para os problemas levantados na análise. Contudo, já sabemos: independente da linguagem escolhida, a conexão com banco de dados deve ser considerada incondicionalmente.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados