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 ครับ