1. เชื่อมต่อกับฐานข้อมูล SQLite

SQLite เป็นฐานข้อมูลที่มีน้ำหนักเบา และฐานข้อมูลของมันก็เป็นแค่ไฟล์เท่านั้น ซึ่งทำให้มันเหมาะสำหรับโปรเจกต์ขนาดเล็กหรือสภาพแวดล้อมในการทดสอบ

นี่คือขั้นตอนในการเชื่อมต่อกับ SQLite และเรียกใช้เครื่องมือโมเมนต์เมียชั่นไวยากรณ์:

ก่อนอื่น ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งไดรเวอร์ภาษา Go สำหรับ SQLite แล้ว คุณสามารถติดตั้งไดรเวอร์ด้วยคำสั่งต่อไปนี้:

go get github.com/mattn/go-sqlite3

ต่อมา ในโปรแกรม Go ของคุณ ให้ใช้โค้ดต่อไปนี้เพื่อเชื่อมต่อกับฐานข้อมูล และสร้างแผนภาพสกีมา:

package main

import (
    "context"
    "log"
    "entdemo/ent"
    _ "github.com/mattn/go-sqlite3"
)

func main() {
    // เปิดหรือสร้างฐานข้อมูล SQLite ในโหมดไฟล์
    client, err := ent.Open("sqlite3", "file:ent?mode=memory&cache=shared&_fk=1")
    if err != nil {
        log.Fatalf("เชื่อมต่อกับ SQLite ล้มเหลว: %v", err)
    }
    defer client.Close()

    // เรียกใช้เครื่องมือโมเมนต์เมียชั่นเพื่อสร้างหรืออัพเดทแผนภาพฐานข้อมูล
    if err = client.Schema.Create(context.Background()); err != nil {
        log.Fatalf("ล้มเหลวในการสร้างโครงสร้างทรัพยากร: %v", err)
    }
    
    // เริ่มใช้ไคลเอนต์สำหรับการดำเนินการกับฐานข้อมูลตั้งแต่ตอนนี้
}

โค้ดข้างต้นนี้นำเข้าแพคเกจที่จำเป็นและสร้างอ็อบเจกต์เชื่อมต่อ client สำหรับฐานข้อมูล SQLite แบบอินเมมโมรี จากนั้นทำการเรียกใช้ client.Schema.Create เพื่อโมเมนต์ฐานข้อมูล SQLite ขั้นนี้จะสร้างหรืออัพเดทตารางในฐานข้อมูลตามแผนที่คุณกำหนด

2. เชื่อมต่อกับฐานข้อมูล PostgreSQL

PostgreSQL เป็นระบบฐานข้อมูลแบบออบเจ็กต์-รีเลชันที่มีพลวัตมาก มันได้รับการนำไปใช้งานอย่างแพร่หลายสำหรับโปรเจกต์ที่ซับซ้อนและรองรับคุณลักษณะขั้นสูงต่าง ๆ สำหรับใช้กับ PostgreSQL ใน Go คุณจำเป็นต้องใช้อ็อบเจกต์ไดรเวอร์ที่สอดคล้อง github.com/lib/pq

ติดตั้งไดรเวอร์ PostgreSQL:

go get github.com/lib/pq

ขั้นตอนในการเชื่อมต่อกับฐานข้อมูล PostgreSQL และดำเนินการโมเมนต์คือดังนี้:

package main

import (
    "context"
    "log"
    "entdemo/ent"
    _ "github.com/lib/pq"
)

func main() {
    // กำหนดค่าไคลเอนต์ด้วยข้อมูลการเชื่อมต่อฐานข้อมูล PostgreSQL ของคุณ
    client, err := ent.Open("postgres", "host=localhost port=5432 user=myuser dbname=mydb password=mypassword")
    if err != nil {
        log.Fatalf("เชื่อมต่อกับ PostgreSQL ล้มเหลว: %v", err)
    }
    defer client.Close()

    // ทำการโมเมนต์อัตโนมัติ
    if err = client.Schema.Create(context.Background()); err != nil {
        log.Fatalf("ล้มเหลวในการสร้างโครงสร้างทรัพยากร: %v", err)
    }
    
    // ดำเนินการฐานข้อมูลอื่น ๆ โดยใช้ไคลเอนต์
}

ในโค้ดนี้ ให้แทนที่ host port user dbname และ password ด้วยข้อมูลการเชื่อมต่อ PostgreSQL ที่ถูกต้องในสภาพแวดล้อมจริงของคุณ

3. เชื่อมต่อกับฐานข้อมูล MySQL/MariaDB

MySQL เป็นระบบจัดการฐานข้อมูลสัมพันธ์ที่นิยมใช้งานอย่างแพร่หลาย และ MariaDB เป็นหนึ่งในแขนงของ MySQL ในการเชื่อมต่อกับ MySQL/MariaDB โดยปกติจะต้องกำหนดชุดตัวอักษร (เช่น utf8mb4) และโซนเวลา (เช่น UTC)

ก่อนอื่น ติดตั้งไดรเวอร์ภาษา Go สำหรับ MySQL:

go get github.com/go-sql-driver/mysql

เชื่อมต่อและกำหนดค่าฐานข้อมูล MySQL:

package main

import (
    "context"
    "log"
    "entdemo/ent"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    // กำหนดค่าไคลเอนต์ MySQL, ตั้งค่าชุดตัวอักษรและโซนเวลา
    client, err := ent.Open("mysql", "username:password@tcp(localhost:3306)/dbname?parseTime=True&loc=Local&charset=utf8mb4,utf8")
    if err != nil {
        log.Fatalf("เชื่อมต่อกับ MySQL ล้มเหลว: %v", err)
    }
    defer client.Close()

    // ดำเนินการโมเมนต์ข้อมูล
    if err = client.Schema.Create(context.Background()); err != nil {
        log.Fatalf("ล้มเหลวในการสร้างโครงสร้างทรัพยากร: %v", err)
    }
    
    // ดำเนินการฐานข้อมูลตั้งแต่ตอนนี้
}

โปรดแน่ใจว่าแทนที่ username password localhost 3306 และ dbname ในสตริงเชื่อมต่อด้วยค่าที่เหมาะสม

4. เชื่อมต่อกับฐานข้อมูล Gremlin

Gremlin เป็นภาษาคิวรี่กราฟของกรอบงาน Apache TinkerPop ซึ่งใช้ในระบบฐานข้อมูลกราฟต่าง ๆ นี่คือตัวอย่างการเชื่อมต่อกับฐานข้อมูลกราฟ Gremlin โดยใช้ AWS Neptune

ติดตั้ง ent framework พร้อมกับ Gremlin support:

go get entgo.io/ent/dialect/gremlin

เชื่อมต่อกับฐานข้อมูล Gremlin:

package main

import (
    "log"
    "entdemo/ent"
    _ "entgo.io/ent/dialect/gremlin"
)

func main() {
    // เชื่อมต่อกับจุดสิ้นสุดของเซิร์ฟเวอร์ Gremlin โดยใช้การเรียกใช้งานภายในเครื่องเป็นตัวอย่างที่นี่
    client, err := ent.Open("gremlin", "http://localhost:8182")
    if err != nil {
        log.Fatalf("เชื่อมต่อกับ Gremlin ล้มเหลว: %v", err)
    }
    defer client.Close()

    // กำหนดค่าเริ่มต้นหรือใช้ client เพื่อควบคุมฐานข้อมูลกราฟ
}

หากใช้บริการคลาวด์ เช่น AWS Neptune ให้แทน http://localhost:8182 ด้วยที่อยู่และพอร์ตเซิร์ฟเวอร์ของ Neptune ครับ