Как передать информацию о соединении с БД в пакет golang?

В Go для передачи информации о соединении с базой данных используется структура, которая содержит необходимые параметры подключения. Наиболее часто используемая структура для этой цели - sql.DB.

Прежде всего, необходимо импортировать пакет database/sql, который предоставляет интерфейс для работы с базами данных, а также специфичный драйвер для вашего типа базы данных. Например, если вы используете PostgreSQL, можно импортировать github.com/lib/pq для работы с ним.

Затем необходимо создать соединение с базой данных, используя функцию sql.Open. Эта функция принимает два аргумента - первый аргумент указывает на тип драйвера (например, "postgres") и второй аргумент содержит параметры подключения. Параметры подключения могут включать в себя информацию, такую как имя пользователя, пароль, хост, порт, имя базы данных и другие. Например:

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

func main() {
    db, err := sql.Open("postgres", "user=postgres password=password dbname=mydb host=localhost port=5432 sslmode=disable")
    if err != nil {
        panic(err)
    }
    defer db.Close()

    // Используйте db для выполнения запросов к базе данных
}

После успешного подключения к базе данных, объект db можно использовать для выплонения запросов. Например, можно выполнить запрос на выборку данных из таблицы:

rows, err := db.Query("SELECT * FROM users")
if err != nil {
    panic(err)
}
defer rows.Close()

for rows.Next() {
    var id int
    var name string

    err = rows.Scan(&id, &name)
    if err != nil {
        panic(err)
    }

    fmt.Println(id, name)
}

Кроме того, объект db предоставляет методы для выполнения других типов запросов, таких как вставка, обновление и удаление:

_, err := db.Exec("INSERT INTO users (name) VALUES ($1)", "John Doe")
if err != nil {
    panic(err)
}

Метод Exec возвращает результат выполнения запроса, который в данном случае не используется. Однако, если вам необходимо получить содержимое сгенерированного идентификатора, этот метод может вернуть его.

В заключение, в Go для передачи информации о соединении с базой данных используется структура sql.DB, которую можно создать с помощью функции sql.Open. После подключения к базе данных, объект db можно использовать для выполнения запросов различных типов.