Sobes.tech
Junior — Middle

Микросервис чӣ гуна бо базаи додаҳо барои нигоҳдорӣ ва гирифтани додаҳо ҳамкорӣ мекунад?

sobes.tech AI

Ҷавоб аз AI

Микросервис дар Go ба базаи додаҳо тавассути драйверҳо ё китобхонаҳои ORM, ки интерфейс барои пайваст шудан, иҷрои дархостҳо ва коркарди натиҷаҳоро амалӣ мекунанд, муошират мекунад.

Қадамҳои асосӣ:

  1. Пайвастшавӣ ба базаи додаҳо бо истифода аз бастаи database/sql ва драйвери мувофиқ (масалан, pq барои PostgreSQL).
  2. Иҷрои дархостҳои SQL барои ворид кардан, навсозӣ, тоза ё интихоб кардани маълумот.
  3. Коркарди натиҷаҳои дархостҳо ва табдили онҳо ба структураҳои зарурии додаҳо.

Масалан барои пайваст шудан ва интихоб аз PostgreSQL:

import (
    "database/sql"
    _ "github.com/lib/pq"
    "log"
)

func getUserByID(db *sql.DB, id int) (string, error) {
    var name string
    err := db.QueryRow("SELECT name FROM users WHERE id = $1", id).Scan(&name)
    if err != nil {
        return "", err
    }
    return name, nil
}

func main() {
    connStr := "user=username dbname=mydb sslmode=disable"
    db, err := sql.Open("postgres", connStr)
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    name, err := getUserByID(db, 1)
    if err != nil {
        log.Println("Хатогӣ дар гирифтани корбар:", err)
    } else {
        log.Println("Номи корбар:", name)
    }
}

Инчунин, микросервис бо истифода аз китобхонаҳо ва драйверҳои стандартӣ барои муошират бо базаи додаҳо кор мекунад.