Menu

Tradução

Português English Español Français

Classe de Conexão em Delphi

Nesse post iremos criar uma classe de conexão em Delphi, utilizando os conceitos de POO, para facilitar a organização e manutenção do seu código.

 

Classe de Conexão em Delphi
Ilustração de um Notebook ligado a um Banco de Dados.

Introdução

No desenvolvimento de aplicações, uma das necessidades mais comuns é a conexão com um banco de dados. Em Delphi, essa tarefa pode ser simplificada ao criar uma classe dedicada para gerenciar as conexões. Neste artigo, vamos explorar como criar uma classe de conexão com banco de dados em Delphi, utilizando boas práticas de programação. Vamos explicar cada passo e oferecer um exemplo de código detalhado para facilitar o entendimento.

O que é uma Classe de Conexão?

Uma classe de conexão é uma estrutura de código que encapsula toda a lógica necessária para se conectar a um banco de dados. Ela facilita a manutenção e reutilização do código, além de promover a organização do projeto. Utilizando uma classe de conexão, você centraliza todas as configurações e métodos relacionados à comunicação com o banco de dados.

Benefícios de Utilizar uma Classe de Conexão

  • Manutenção Simplificada: Qualquer alteração necessária na forma de conectar-se ao banco de dados é feita em um único lugar.
  • Reutilização de Código: A classe pode ser reutilizada em diferentes partes do aplicativo ou em diferentes projetos.
  • Organização: Facilita a separação de responsabilidades, mantendo o código de conexão separado da lógica de negócio.

Passo a Passo: Criando a Classe de Conexão em Delphi

Vamos criar uma classe de conexão em Delphi que utiliza FireDAC para se conectar a um banco de dados MySQL. Para isso, você precisará ter o Delphi instalado, além dos componentes FireDAC.

  1. Preparação do Ambiente
  2. Criando o Projeto
    • Abra o Delphi e crie um novo projeto VCL.
    • Adicione um novo unit ao projeto. Esta unit será onde definiremos nossa classe de conexão. Salve com o nome de DBConnection.
  3. Definindo a Classe de Conexão No unit recém-criado, adicione o seguinte código:
Delphi

unit DBConnection;

interface

uses
  System.SysUtils, FireDAC.Comp.Client, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async,
  FireDAC.Phys, FireDAC.Phys.MySQL, FireDAC.Phys.MySQLDef, FireDAC.VCLUI.Wait;

type
  TDBConnection = class
  private
    FConnection: TFDConnection;
  public
    constructor Create;
    destructor Destroy; override;
    function GetConnection: TFDConnection;
  end;

implementation

{ TDBConnection }

constructor TDBConnection.Create;
begin
  FConnection := TFDConnection.Create(nil);
  FConnection.DriverName := 'MySQL';
  FConnection.Params.DriverID := 'MySQL';
  FConnection.Params.Database := 'your_database_name';
  FConnection.Params.UserName := 'your_username';
  FConnection.Params.Password := 'your_password';
  FConnection.Params.Add('Server=localhost');
  try
    FConnection.Connected := True;
  except
    on E: Exception do
      raise Exception.Create('Error connecting to the database: ' + E.Message);
  end;
end;

destructor TDBConnection.Destroy;
begin
  FConnection.Free;
  inherited;
end;

function TDBConnection.GetConnection: TFDConnection;
begin
  Result := FConnection;
end;

end.
  

Explicação do Código

  1. Imports Necessários: No bloco uses, importamos as unidades necessárias do FireDAC para gerenciar a conexão com o MySQL.
  2. Definição da Classe TDBConnection:
    • A classe possui uma variável privada FConnection do tipo TFDConnection, que é a principal classe de conexão do FireDAC.
    • No construtor Create, inicializamos a conexão e configuramos os parâmetros necessários, como DriverID, Database, UserName, Password, e Server.
    • Tentamos conectar ao banco de dados com FConnection.Connected := True. Se ocorrer algum erro, ele será capturado e uma exceção será lançada com uma mensagem apropriada.
    • No destrutor Destroy, liberamos a memória alocada para FConnection.
  3. Método GetConnection: Este método público retorna a instância da conexão TFDConnection, permitindo que outras partes do aplicativo utilizem a conexão configurada.

Utilizando a Classe de Conexão

Para utilizar a classe de conexão em seu projeto, siga os passos abaixo:

  1. Adicione um botão ao Formulário Principal (btnConnect), para criarmos a instância de conexão.
  2. Adicione a Unit ao Formulário Principal No formulário principal do seu projeto, adicione a unit DBConnection no bloco uses.
  3. Crie uma Instância da Classe de Conexão No formulário principal, você pode criar uma instância da classe TDBConnection e utilizar a conexão conforme necessário:
Delphi

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, DBConnection, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    btnConnect: TButton;
    procedure btnConnectClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnConnectClick(Sender: TObject);
var
  DBConn: TDBConnection;
begin
  DBConn := TDBConnection.Create;//Cria a instância da classe de conexão
  try
    if DBConn.GetConnection.Connected then //verifica se a classe esta conectada e exibe mensagem de sucesso.
      ShowMessage('Successfully connected to the database!');
  finally
    DBConn.Free;
  end;
end;

end.
  

Veja abaixo a ilustração do projeto utilizando classe de conexão:

Ilustração do projeto.

Código fonte do exemplo

Você pode fazer o download do exemplo do projeto através do repositório do github:

https://github.com/Gisele-de-Melo/ClasseConexao

Conclusão

Criar uma classe de conexão com banco de dados em Delphi é uma prática recomendada que facilita a manutenção, a reutilização e a organização do código. Com esta abordagem, você pode gerenciar de forma centralizada todas as configurações e operações relacionadas ao banco de dados, tornando o desenvolvimento mais eficiente e o código mais limpo. Utilize este guia como ponto de partida para aprimorar suas habilidades em Delphi e desenvolver aplicações robustas e bem estruturadas.

Posts Relacionados




Nenhum comentário:

Postar um comentário

Recursividade em Delphi: Conceitos, Exemplos e Aplicações Práticas

Neste post, você aprenderá quando usar recursividade em Delphi, suas vantagens e desvantagens, além de um exemplo prático implementa...