Kreiranje konekcije ka bazi podataka

Pre pribavljanja ili izmene podataka neophodno je kreirati konekciju ka izvoru podataka. Broj raspoloživih konekcija je ograničen pa je potrebno držati konekciju otvorenom što je kraće moguće. Konekcija ka izvoru podataka u ADO.NET-u enkapsulirana je klasom Connection. Prilikom kreiranja instance klase Connection neophodno je definisati ConnectionString atribut ove klase. ConnectionString atribut predstavlja formatirani niz karaktera sastavljen od niza ime/vrednost parova odvojenih međusobno karakterom ‘;’. Ovaj atribut najčešće sadrži informacije o imenu mašine kojoj pristupamo, načinu autentifikacije korisnika, imenu baze kojoj pristupamo i sl.

Kreiranje Connection objekta može se izvršiti pozivom podrazumevanog konstruktura. Zatim se preko svojstva ConnectionString definišu parametri konekcije koji se pišu u obliku stringa. Drugi način kreiranja Connection objekta je da se konstruktoru ove klase prosledi string koji opisuje konekciju na bazu podataka.

U nastavku je dat primer kreiranja konekcije korišćenjem MySQL data provider-a.


Kreiranje konekcije

MySqlConnection conn = new MySqlConnection();
conn.ConnectionString = "server=localhost;user id="Pera";password="test1";database=testDB";

Pre korišćenja konekcije neophodno je eksplicitno otvoriti konekciju:

Otvaranje konekcije

conn.Open();

Nakon eksplicitnog poziva funkcije za otvaranje konekcije, otvorena je i aktivna konekcija ka bazi podataka. Nakon završetka obrade podataka neophodno je zatvoriti konekciju pozivom funkcije za zatvaranje konekcije:

Zatvaranje konekcije

conn.Close();

Objekti klase Connection poseduju skup atributa kojima je moguće upravljati tokom izvršenja transakcija nad bazom podataka i pribaviti informacije vezane za izvor podataka kome se pristupa.

Ovo smo već prošli na online časovima.



Za kreiranje konekcije ka bazi iz programskog koda pogledajte ponovo video:



Konekcije i Obrada izuzetaka

Preporučuje se da se operacije nad bazom podataka koje mogu da dovedu do greške u program pišu unutar try bloka. Unutar try bloka vrši se i otvaranje konekcije pozivom metode Open objekta klase Connection. Samo kreiranje konekcije trebalo bi da bude izvan try bloka jer bi u protivnom ograničili oblast važenja ovog objekta. Ukoliko dođe do izuzetaka oni su objekti klase Connection. Poželjno je i definisanje finally bloka u kojem će se vršiti zatvaranje konekcije bez obzira da li je pri izvršavanju sql komandi došlo do grešaka ili nije.

try
{
con.Open(); // (Izvrsavanje ADO.NET komandi) 
}
catch (MySqlException err)
{
Console.WriteLine(err.ToString());
}
finally
{ 
con.Close();
}
 

Connection pooling

Kada se neka konekcija zatvori ona se stavlja u konekcioni bazen.

Kada se pozove ponovo Open metoda, provajder prvo pretražuje bazen i ako konekcioni objekat ne postoji u bazenu kreira novi, ako postoji koristi ga. Definiše se maksimalni broj konekcija u bazenu. Definiše se i Connection Lifetime što odrenuje dužinu života konekcije u bazenu.

Last modified: Wednesday, 7 September 2022, 10:36 AM