Sizin gibi okuyucular MUO'yu desteklemeye yardımcı oluyor. Sitemizdeki bağlantıları kullanarak bir satın alma işlemi gerçekleştirdiğinizde, bir ortaklık komisyonu kazanabiliriz. Devamını oku.

Postgres, birçok özelliği ve kullanım kolaylığı nedeniyle popüler SQL veritabanlarından biridir. Postgres, Çoklu Sürüm Eşzamanlılık Denetimi, zaman uyumsuz çoğaltma, iç içe işlemler ve önceden yazma günlüğü gibi özelliklerle ACID uyumludur. Diğer pek çok özelliğin yanı sıra, bu özellikler Postgres'i SQL veritabanı yönetim sistemi haline getirir.

Go ekosistemi, Postgres dahil olmak üzere çeşitli DBMS ile etkileşim için birçok pakete ev sahipliği yapar. Go yerleşik sağlar veritabanı/sql veritabanı sürücülerini kullanarak SQL veritabanlarıyla çalışmak için paket. Go veri yapılarını kullanarak, veritabanınızla kolay etkileşim için GORM gibi popüler üçüncü taraf ORM'leri entegre edebilirsiniz.

GORM ve Postgres'e Başlarken

GORM paketi Go ekosistemindeki en popüler ORM'lerden biridir çünkü geliştirici dostudur, zengin özelliklere sahiptir ve the veritabanı/sql paket.

instagram viewer

GORM, otomatik geçişler, günlük kaydı, hazırlanan ifadeler, işlemler ve parçalama için işlevsellik sağlar. Paket, yapıları ve diğer yerleşik veri türlerini kullanarak önce kod yaklaşımını benimser.

GORM paketini projenizin bağımlılıklarına eklemek için çalışma dizininizde bu terminal komutunu çalıştırın:

Gitmek gorm.io/gorm'u edinin\n

GORM paketini çalıştırmak için bir veritabanı sürücüsüne ihtiyacınız olacak. GORM, popüler DBMS için veritabanı sürücüleri sağlar. GORM'u yüklemek için bu komutu çalışma dizininizde çalıştırın. Postgres sürücü:

Gitmek gorm.io/driver/postgres'i edinin\n

Postgres'i GORM Kullanarak Go İle Bağlama

ORM ve veritabanı sürücüsüyle çalışmak için bu paketleri Go dosyanıza alın. Şunu kullanacaksınız: kayıt hataları konsolunuza ve fmt çıktıyı yazdırmak için paket.

içe aktarmak (\N "fmt"\N "gorm.io/driver/postgres"\N "gorm.io/gorm"\N "kayıt"\n)\n

Bilgisayarınıza bağlanmak için bir bağlantı dizesine ihtiyacınız olacak. Postgres veritabanı çalışan ortamda. Bağlantı dizesini oluşturan alanlar için bir yapıyı model olarak kullanabilirsiniz. Bir yapı kullanmak, özellikle bağımlılık ekleme durumlarında farklı değerleri değiştirmeyi ve test etmeyi kolaylaştırır.

İşte bağlantı dizesini oluşturan alanlar için örnek bir yapı modeli:

tip Yapılandırma yapı {\n Ana Bilgisayar sicim\n Bağlantı noktası sicim\n Şifre sicim\n Kullanıcı sicim\n DBAdı sicim\n SSLModu sicim\n}\n

Aşağıda, veritabanı bağlantınız için tipik bir işlev bulunmaktadır. Bağlantı örneğini ve bağlantı durumuna bağlı olarak bir hata döndürür.

işlevYeni bağlantı()(*görm. veritabanı, hata) {\N geri dönmek db, sıfır\n}\n

Bağlantı yapı modelini başlatabilir ve alanları Postgres veritabanınızdaki değerlerle doldurabilirsiniz.

 yapılandırmalar := Yapılandırma{\n Ana Bilgisayar: "veritabanı_Host",\n Bağlantı noktası: "veritabanı_bağlantı noktası",\n Şifre: "veritabanı_Parolası",\n Kullanıcı: "veritabanı_Kullanıcısı",\n DBAdı: "veri tabanı ismi",\n SSLModu: "YANLIŞ",\n }\n dsn := fmt. Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=%s", yapılandırmalar. Ana bilgisayar, yapılandırmalar. Bağlantı noktası, yapılandırmalar. Kullanıcı, yapılandırmalar. Parola, yapılandırmalar. DBName, yapılandırmalar. SSLModu)\n

bu dsn değişken kullanır Sprintf biçimlendirme yöntemi ve Dize biçimlendirme fiillerine git alanlarını birleştirmek için Yapılandırma Postgres bağlantı dizesini yapılandırın ve ayarlayın.

kullanarak GORM ile bir veritabanı bağlantısı açabilirsiniz. Açık yöntem. bu Açık yöntem, bir veritabanı sürücüsünden açık bir bağlantı ve sürücüden isteğe bağlı yapılandırmaların bir listesini alır. Yapılandırma GORM paketinin türü. Bir bağlantı örneği ve isteğe bağlı bir hata döndürür.

 db, hata := gorm. Açık (postgres. Aç (dsn), &gorm. Yapılandırma{})\n eğer hata!= sıfır {\N geri dönmek db, hata\n }\n

Bağlantı Durumunu Doğrulamak için Veritabanına Ping Gönderme

Bir mantıksal sonuç veya veritabanı bağlantısı geçersizse bir hata döndüren bir işlevle sağlık/çevrimiçi durumunu doğrulamak için veritabanınıza ping işlemi yapabilirsiniz.

işlevPingDb()(bool, hata) {\n \n geri dönmekdoğru, sıfır\n}\n

Veritabanına ping atmak için yeni bir bağlantı örneği oluşturmanız gerekecek. İşte kullanan bir örnek Yeni bağlantı bir bağlantı örneği oluşturma işlevi:

 ConnectionInstance, err := NewConnection()\n eğer hata!= sıfır {\n günlük. Fatalf("Veritabanı bağlantısı başarısız oldu %v", hata Hata())\n }\n

Bir bağlantı örneği edindikten sonra, aşağıdakilerle bir veritabanı örneği oluşturun: veri tabanı bağlantı yöntemi.

 dbConnection, err := bağlantı Örneği. veritabanı()\n eğer hata!= sıfır {\N geri dönmekYANLIŞ, hata\n } \n

ile veritabanına ping atabilirsiniz. ping veritabanı örneğinin yöntemi. bu ping yöntem herhangi bir hata döndürür veya sıfır bağlantı başarılı olsaydı.

\n hata = dbConnection. Ping()\n eğer hata!= sıfır {\N geri dönmekYANLIŞ, hata\n } başka {\n \n fmt. Yazdır("Bağlantı başarılı oldu")\n }\n

Başarılı bir çalıştırma, şuna benzer bir çıktıyla sonuçlanmalıdır:

Go'da SQL Veritabanı ile Çalışmak için database/sql Paketini Kullanabilirsiniz

bu veritabanı/sql paket genişletilebilir ve çoğu Go veritabanı paketi ve sürücüsü paketi genişlettiği için, ORM'leri tercih etmek yerine projelerinizde paketi kullanabilirsiniz.

GORM ayrıca ham SQL oluşturmak için desteklenmeyen işlemler için yararlı olan bir SQL oluşturucu sağlar.