Kreiranje konekcije ka bazi podataka iz programskog koda
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.