... > GO > Подключение и использование...

Подключение и использование баз данных в GO

НАВИГАЦИЯ ПО СТРАНИЦЕ

пример

В GO существует несколько пакетов, которые облегчают подключение и взаимодействие с базами данных. В данном примере мы рассмотрим работу с базой данных SQLite с использованием пакета github.com/mattn/go-sqlite3. Прежде всего, убедитесь, что пакет установлен:

go get -u github.com/mattn/go-sqlite3

Теперь рассмотрим пример подключения и использования базы данных SQLite:

package main

import (
	"database/sql"
	"fmt"
	"log"

	_ "github.com/mattn/go-sqlite3"
)

func main() {
	// Подключение к базе данных SQLite
	db, err := sql.Open("sqlite3", "example.db")
	if err != nil {
		log.Fatal(err)
	}
	defer db.Close()

	// Создание таблицы, если её нет
	createTable := `
	CREATE TABLE IF NOT EXISTS users (
		id INTEGER PRIMARY KEY AUTOINCREMENT,
		username TEXT NOT NULL,
		email TEXT NOT NULL
	);
	`
	_, err = db.Exec(createTable)
	if err != nil {
		log.Fatal(err)
	}

	// Вставка данных
	insertData := `
	INSERT INTO users (username, email) VALUES (?, ?);
	`
	_, err = db.Exec(insertData, "john_doe", "john@example.com")
	if err != nil {
		log.Fatal(err)
	}

	// Выборка данных
	rows, err := db.Query("SELECT * FROM users")
	if err != nil {
		log.Fatal(err)
	}
	defer rows.Close()

	// Чтение результатов запроса
	for rows.Next() {
		var id int
		var username, email string
		err := rows.Scan(&id, &username, &email)
		if err != nil {
			log.Fatal(err)
		}
		fmt.Printf("ID: %d, Username: %s, Email: %s\n", id, username, email)
	}

	// Проверка наличия ошибок после выполнения запросов
	err = rows.Err()
	if err != nil {
		log.Fatal(err)
	}
}

В этом примере:

  1. Мы используем пакет github.com/mattn/go-sqlite3 для работы с SQLite.

  2. Открываем подключение к базе данных с использованием sql.Open.

  3. Создаем таблицу и вставляем данные.

  4. Выполняем запрос на выборку данных.

  5. Читаем результаты запроса и выводим их на экран.

Помните, что для работы с другими базами данных, такими как MySQL, PostgreSQL и др., вам потребуется использовать соответствующие драйверы и пакеты для работы с ними.