Mysql
Golang ilə MySQL verilənlər bazasında necə işləmək barədə təcrübəmi paylaşacağam. Aşağıdakı addımlarla həm MySQL serverinə necə qoşulacağınızı, həm də CRUD (yaratma, oxuma, yeniləmə, silmə) əməliyyatlarını, həmçinin hazırlanan ifadələr və transaction idarəetməsini nümunələrlə izah edəcəyəm.
1. Başlamazdan Əvvəl: Tələblər və Quraşdırma
Nə Lazımdır:
MySQL Serveri: İşlək bir MySQL verilənlər bazası (lokal və ya uzaq server).
MySQL Go Driver: go-sql-driver/mysql paketini istifadə edəcəyik.
Quraşdırma:
Terminalınızda aşağıdakı əmri işə salın:
go get -u github.com/go-sql-driver/mysqlBu driver Golang-ın database/sql paketinin MySQL ilə işləməsini təmin edir.
2. Verilənlər Bazası ilə Əlaqə
İlk addımımız MySQL serverinə qoşulmaqdır. Bunun üçün DSN (Data Source Name) adlanan məlumatı müəyyən etmək lazımdır. DSN-də istifadəçi adı, parol, serverin ünvanı, port və verilənlər bazasının adı yer alır.
Məsələn:
Qeyd:
sql.Openfunksiya ilə əlaqə yaradılır, amma əlaqənin həqiqətən işlədiyinidb.Ping()ilə yoxlamaq vacibdir.
3. CRUD Əməliyyatları
a) Məlumat Əlavə Etmək (Create)
Yeni məlumat əlavə etmək üçün INSERT sorğusundan istifadə edirik.
b) Məlumat Oxumaq (Read)
Mövcud məlumatları oxumaq üçün SELECT sorğusunu istifadə edirik.
c) Məlumat Yeniləmək (Update)
Mövcud məlumat üzərində dəyişiklik etmək üçün UPDATE sorğusundan istifadə edirik.
d) Məlumat Silmək (Delete)
Artıq lazım olmayan məlumatı silmək üçün DELETE sorğusu istifadə olunur.
4. Hazırlanan İfadələr (Prepared Statements)
Təkrarlanan sorğular üçün hazırlanan ifadələr performansı artırır və SQL enjeksiyasının qarşısını alır. Gəlin, bir neçə məlumatı hazırlanan ifadə ilə necə əlavə edəcəyimizə baxaq.
5. Transaction (Əməliyyat) İdarəetməsi
Transaction istifadə edərək, birdən çox əməliyyatın ya hamısının uğurla, ya da heç birinin tətbiq olunmasını təmin edirik. Bu, məlumatın tutarlılığını qorumağa kömək edir.
6. Xəta İdarəetməsi və Ən Yaxşı Təcrübələr
Xəta Yoxlanışı: Hər əməliyyatdan sonra
erryoxlayaraq proqramınızın möhkəm işləməsini təmin edin.Bağlantı İdarəetməsi: İşiniz bitdikdən sonra
defer db.Close()istifadə edərək açıq əlaqələrin düzgün bağlanmasını unutmayın.Hazırlanan İfadələr: Təkrarlanan sorğularda hazırlanan ifadələrdən istifadə edərək həm təhlükəsizliyi, həm də performansı artırın.
Transaction İstifadəsi: Əməliyyatların bir-birinə bağlı olduğu hallarda transaction istifadə edin ki, hər hansı bir problem yarandıqda bütün əməliyyatlar geri alınsın.
Last updated