เชื่อมต่อกับฐานข้อมูล Postgres ในแอปพลิเคชัน Go ของคุณด้วย GORM

เชื่อมต่อกับฐานข้อมูล Postgres ในแอปพลิเคชัน Go ของคุณด้วย GORM
ผู้อ่านเช่นคุณช่วยสนับสนุน MUO เมื่อคุณทำการซื้อโดยใช้ลิงก์บนเว็บไซต์ของเรา เราอาจได้รับค่าคอมมิชชั่นจากพันธมิตร อ่านเพิ่มเติม.

Postgres เป็นหนึ่งในฐานข้อมูล SQL ที่ได้รับความนิยม เนื่องจากมีคุณสมบัติมากมายและใช้งานง่าย Postgres เป็นไปตามข้อกำหนดของ ACID ด้วยคุณสมบัติต่างๆ เช่น การควบคุมการทำงานพร้อมกันหลายเวอร์ชัน การจำลองแบบ async ธุรกรรมที่ซ้อนกัน และการบันทึกการเขียนล่วงหน้า คุณลักษณะเหล่านี้ทำให้ Postgres เป็นระบบจัดการฐานข้อมูล SQL ที่เข้าถึงได้





ระบบนิเวศ Go เป็นที่ตั้งของแพ็คเกจมากมายสำหรับการโต้ตอบกับ DBMS ต่างๆ รวมถึง Postgres Go ให้การบิ้วอิน ฐานข้อมูล/ตร แพ็คเกจสำหรับการทำงานกับฐานข้อมูล SQL โดยใช้ไดรเวอร์ฐานข้อมูล เมื่อใช้โครงสร้างข้อมูล Go คุณสามารถผสานรวม ORM ของบุคคลที่สามยอดนิยม เช่น GORM เพื่อการโต้ตอบกับฐานข้อมูลของคุณได้อย่างง่ายดาย





เริ่มต้นใช้งาน GORM และ Postgres

  หน้าแรกของ GORM

แพ็คเกจ GORM เป็นหนึ่งใน ORM ที่ได้รับความนิยมสูงสุดในระบบนิเวศของ Go เนื่องจากเป็นมิตรกับนักพัฒนา มีคุณลักษณะหลากหลาย และสร้างบน เดอะ ฐานข้อมูล/ตร บรรจุุภัณฑ์ .





GORM มีฟังก์ชันสำหรับการโยกย้ายอัตโนมัติ การบันทึก คำสั่งที่เตรียมไว้ ธุรกรรม และการแบ่งส่วนข้อมูล แพ็คเกจใช้วิธีโค้ดแรกโดยใช้โครงสร้างและชนิดข้อมูลในตัวอื่น ๆ

เรียกใช้คำสั่งเทอร์มินัลนี้ในไดเร็กทอรีการทำงานของคุณเพื่อเพิ่มแพ็คเกจ GORM ในการขึ้นต่อกันของโครงการของคุณ:



 go get gorm.io/gorm\n

คุณต้องใช้ไดรเวอร์ฐานข้อมูลเพื่อใช้งานแพ็คเกจ GORM GORM ให้ไดรเวอร์ฐานข้อมูลสำหรับ DBMS ยอดนิยม เรียกใช้คำสั่งนี้ในไดเร็กทอรีการทำงานของคุณเพื่อติดตั้ง GORM โพสต์เกรส คนขับ:

วิธีปลุก windows 10 จากโหมดสลีป
 go get gorm.io/driver/postgres\n

การเชื่อมต่อ Postgres กับ Go โดยใช้ GORM

นำเข้าแพ็คเกจเหล่านี้ในไฟล์ Go เพื่อทำงานร่วมกับ ORM และไดรเวอร์ฐานข้อมูล คุณจะใช้ บันทึก แพ็คเกจเพื่อบันทึกข้อผิดพลาดไปยังคอนโซลของคุณและ เอฟเอ็มที แพคเกจที่จะพิมพ์ออก





 import (\n "fmt"\n "gorm.io/driver/postgres"\n "gorm.io/gorm"\n "log"\n)\n

คุณจะต้องมีสายอักขระการเชื่อมต่อเพื่อเชื่อมต่อกับของคุณ ฐานข้อมูล Postgres ในสภาพแวดล้อมการวิ่ง คุณสามารถใช้โครงสร้างเป็นแบบจำลองสำหรับฟิลด์ที่ประกอบเป็นสตริงการเชื่อมต่อได้ การใช้โครงสร้างช่วยให้เปลี่ยนและทดสอบค่าต่างๆ ได้ง่ายขึ้น โดยเฉพาะอย่างยิ่งในกรณีของการใช้การพึ่งพาอาศัยกัน

ต่อไปนี้เป็นตัวอย่างโมเดลโครงสร้างสำหรับฟิลด์ที่ประกอบเป็นสตริงการเชื่อมต่อ:





 type Config struct {\n Host string\n Port string\n Password string\n User string\n DBName string\n SSLMode string\n}\n

ด้านล่างนี้เป็นฟังก์ชันทั่วไปสำหรับการเชื่อมต่อฐานข้อมูลของคุณ จะส่งคืนอินสแตนซ์การเชื่อมต่อและข้อผิดพลาดขึ้นอยู่กับสถานะการเชื่อมต่อ

 func NewConnection() (*gorm.DB, error) {\n return db, nil\n}\n

คุณสามารถยกตัวอย่างโมเดลโครงสร้างการเชื่อมต่อและเติมค่าในฐานข้อมูล Postgres ของคุณลงในฟิลด์

วิธีใช้ microsoft office ฟรี
     configurations := Config{\n Host: "database_Host",\n Port: "database_Port",\n Password: "database_Password",\n User: "database_User",\n DBName: "database_Name",\n SSLMode: "false",\n }\n dsn := fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=%s", configurations.Host, configurations.Port, configurations.User, configurations.Password, configurations.DBName, configurations.SSLMode)\n

เดอะ ดีเอสเอ็น ตัวแปรใช้ สปรินท์ฟ วิธีการจัดรูปแบบและ ไปคำกริยาการจัดรูปแบบสตริง เพื่อเชื่อมเขตข้อมูลของ กำหนดค่า struct และตั้งค่าสตริงการเชื่อมต่อ Postgres

คุณสามารถเปิดการเชื่อมต่อฐานข้อมูลด้วย GORM โดยใช้ เปิด กระบวนการ. เดอะ เปิด เมธอดใช้การเชื่อมต่อแบบเปิดจากไดรเวอร์ฐานข้อมูลและรายการการกำหนดค่าเพิ่มเติมจาก กำหนดค่า ประเภทของแพ็คเกจ GORM จะส่งคืนอินสแตนซ์การเชื่อมต่อและข้อผิดพลาดเพิ่มเติม

     db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})\n if err != nil {\n return db, err\n }\n

ส่ง Ping ฐานข้อมูลเพื่อตรวจสอบสถานะการเชื่อมต่อ

คุณสามารถ ping ฐานข้อมูลของคุณเพื่อตรวจสอบสถานภาพ/สถานะออนไลน์ด้วยฟังก์ชันที่ส่งคืนผลลัพธ์บูลีนหรือแสดงข้อผิดพลาดหากการเชื่อมต่อฐานข้อมูลไม่ถูกต้อง

ฉันจะซ่อมหน้าจอ iphone ราคาถูกได้ที่ไหน
 func PingDb() (bool, error) {\n \n return true, nil\n}\n

คุณจะต้องสร้างอินสแตนซ์การเชื่อมต่อใหม่เพื่อ ping ฐานข้อมูล นี่คือตัวอย่างการใช้ ใหม่การเชื่อมต่อ ฟังก์ชันเพื่อสร้างอินสแตนซ์การเชื่อมต่อ:

     connectionInstance, err := NewConnection()\n if err != nil {\n log.Fatalf("The database connection failed %v", err.Error())\n }\n

เมื่อคุณได้รับอินสแตนซ์การเชื่อมต่อแล้ว ให้สร้างอินสแตนซ์ฐานข้อมูลด้วย ฐานข้อมูล วิธีการเชื่อมต่อ

     dbConnection, err := connectionInstance.DB()\n if err != nil {\n return false, err\n } \n

คุณสามารถ ping ฐานข้อมูลด้วยไฟล์ ปิง วิธีการของอินสแตนซ์ฐานข้อมูล เดอะ ปิง วิธีการส่งคืนข้อผิดพลาดใด ๆ หรือ ไม่มีเลย หากการเชื่อมต่อสำเร็จ

 \n err = dbConnection.Ping()\n if err != nil {\n return false, err\n } else {\n \n fmt.Println("The connection was successful")\n }\n

การรันที่สำเร็จควรได้ผลลัพธ์ที่คล้ายกับสิ่งนี้:

  เอาต์พุตการเชื่อมต่อสำเร็จ

คุณสามารถใช้แพ็คเกจฐานข้อมูล / sql เพื่อทำงานกับฐานข้อมูล SQL ใน Go

เดอะ ฐานข้อมูล/ตร แพ็คเกจสามารถขยายได้ และเนื่องจากแพ็คเกจฐานข้อมูล Go และไดรเวอร์ส่วนใหญ่ขยายแพ็คเกจ คุณจึงสามารถใช้แพ็คเกจในโครงการของคุณแทนการเลือกใช้ ORM

GORM ยังมีตัวสร้าง SQL สำหรับสร้าง SQL ดิบ ซึ่งมีประโยชน์สำหรับการดำเนินการที่ไม่ได้รับการสนับสนุน