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