اتصال به دیتابیس MSSQL در برنامه‌های Golang


برای اتصال به دیتابیس MSSQL در برنامه‌های Golang، در ابتدا باید ماژول‌های مربوط به آن‌را با اجرای دستورات زیر، نصب کنید:

کپی
go get -u gorm.io/gorm
go get -u gorm.io/driver/sqlserver
go get github.com/joho/godotenv

پس از آن، کافیست تا اطلاعات مربوط به دیتابیس خود را به متغیرهای محیطی برنامه خود، اضافه کنید؛ به عنوان مثال:

کپی
DB_USER=sa
DB_PASSWORD=password
DB_HOST=host
DB_PORT=port
DB_NAME=mydatabase

در نهایت، می‌توانید با استفاده از قطعه کد زیر، به دیتابیس خود، متصل شوید:

کپی
package main

import (
    "fmt"
    "log"
    "os"

    "github.com/joho/godotenv"
    "gorm.io/driver/sqlserver"
    "gorm.io/gorm"
)

func main() {
    // Load environment variables from .env file
    err := godotenv.Load()
    if err != nil {
        log.Fatalf("Error loading .env file")
    }

    // Get environment variables
    user := os.Getenv("DB_USER")
    password := os.Getenv("DB_PASSWORD")
    host := os.Getenv("DB_HOST")
    port := os.Getenv("DB_PORT")
    dbName := os.Getenv("DB_NAME")

    // Form DSN (Data Source Name)
    dsn := fmt.Sprintf("sqlserver://%s:%s@%s:%s?connection+timeout=30", user, password, host, port)

    // Connect to SQL Server
    db, err := gorm.Open(sqlserver.Open(dsn), &gorm.Config{})
    if err != nil {
        log.Fatal(err.Error())
    }

    // Maximum Idle Connections
    sqlDB, err := db.DB()
    if err != nil {
        log.Fatal(err.Error())
    }
    sqlDB.SetMaxIdleConns(10)
    sqlDB.SetMaxOpenConns(100)

    log.Println("Connected to the database")

    // Create Database Using Models
    err = db.Exec(fmt.Sprintf("CREATE DATABASE %s", dbName)).Error
    if err != nil {
        log.Fatal(err.Error())
    }

    log.Printf("Database '%s' created successfully", dbName)
}