Construindo uma classe de conexão com banco de dados em C# utilizando design pattern Singleton
Publicado por Claudio Rocha de Jesus (última atualização em 31/10/2009)
[ Hits: 18.808 ]
Homepage: www.zambotecnologia.com.br
Este arquivo contém duas classes de conexão com banco de dados, uma para o banco de dados PostgreSQL e outro para Microsoft SQL Server. As duas classes implementam o design pattern singleton, onde somente pode ser criada uma única instância da classe.
A primeira não utiliza lock e nem lazy initialization já a segunda (MSSQL) implementa.
Para montar a string de conexão utilizei outra classe que passarei em outro post.
/** * Este arquivo contém duas classes de conexão com banco de dados, * uma para o banco de dados PostgreSQL e outro para Microsoft SQL Server. * As duas classes implementam o design pattern singleton, onde somente * pode ser criada uma única instância da classe. * A primeira não utiliza lock e nem lazy initialization já a segunda * (MSSQL) implementa. * * @category Biblioteca * @package DataAccesLayer * @author Claudio Rocha de Jesus <crochadejesus@yahoo.com.br> * @since 0.1 */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using Npgsql; using System.Data.SqlClient; namespace DataAccessLayer { /// <summary> /// Usa padrão Singleton para obter uma única instância do PostgreSQL. /// Utilizando thread-safe sem usar locks e not lazy. /// </summary> public sealed class ConnectPGSQL { //Cria instância da classe internamente private static readonly ConnectPGSQL _Instance = new ConnectPGSQL(); //Construtor privado, não pode ser instanciado diretamente. private ConnectPGSQL() { } public static ConnectPGSQL getInstance() { return _Instance; } public NpgsqlConnection openConnection() { //Utilizando classe que gera string de conexão do xml OpenConfig openPGSQL = new OpenConfig(); string stConnPGSQL = openPGSQL.readDriverPGSQL(); NpgsqlConnection pgsql = new NpgsqlConnection(stConnPGSQL); pgsql.Open(); return(pgsql); } } /// <summary> /// Usa padrão Singleton para obter uma única instância do Microsot SQL Server. /// Utilizando thread-safe usando locks e lazy initialization e o modelo /// Double Check Lock. /// </summary> public sealed class ConnectMSSQL { //Cria instância da classe internamente, inicialmente como nula private static volatile ConnectMSSQL _Instance = null; //Construtor privado, não pode ser instanciado diretamente. private ConnectMSSQL() { } public static ConnectMSSQL getInstance() { if (_Instance == null) { lock (typeof(ConnectMSSQL)) { if (_Instance == null) _Instance = new ConnectMSSQL(); } } return _Instance; } public SqlConnection openConnection() { //Utilizando classe que gera string de conexão do xml OpenConfig openMSSQL = new OpenConfig(); string stConnMSSQL = openMSSQL.readDriverMSSQL(); //Conectando no banco de dados SqlConnection mssql = new SqlConnection(stConnMSSQL); mssql.Open(); return(mssql); } } }
Usando MySQL na linguagem C - Exemplo 1
Programa em C++ sistema de dados de produtos e equipamentos de informatica
Nenhum comentário foi encontrado.
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (19)
material de assembly x64 [RESOLVIDO] (3)
Como configurar o Openvpn do pfSense para entregar da memsa faixa de I... (1)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba