ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Golang. SQLite

Golang. SQLite

SQLite — это простой, минималистичный, быстрый и надежный механизм базы данных SQL. Это очень популярный и эффективный выбор для тестирования из-за его простоты и доступности.

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

 

Требования

Чтобы следовать этой статье, вам понадобится следующее:

  1. Последняя версия компилятора Go.
  2. Текстовый редактор на ваш выбор.
  3. Базовые знания Go.

Как только вы выполните требования, мы можем продолжить.

 

Настройка среды

Первым шагом является создание тестовой среды для создания приложения go. Начните с создания каталога с помощью команды:

mkdir sqlite-test

 

Затем перейдите в каталог и инициализируйте с помощью команды:

cd sqlite-test
go mod init sqlite-test

 

После инициализации модулей создайте основной файл go:

touch main.go

 

Затем импортируйте пакет go-sqlite-3. Этот пакет позволяет нам работать с базами данных SQLite с помощью Go.

Добавьте следующую строку в файл main.go:

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

 

Запустите команду ниже, чтобы установить пакеты:

go mod tidy

 

Кроме того, вы можете запустить команду ниже, чтобы установить пакет go-sqlite3 вручную:

go get github.com/mattn/go-sqlite3

 

Создать файл базы данных

Поскольку SQLite — это файловая база данных, нам нужно создать файл базы данных для хранения данных. Мы можем сделать это с помощью метода os.Create().

Пример показан ниже:

file, err := os.Create("database.db")
if err != nil {
    log.Fatal(err)
}
file.Close()
}

 

Создать табличную функцию

Чтобы добавить таблицу в базу данных, мы можем открыть файл для чтения, а затем добавить указанную таблицу. В этом примере мы создадим функцию, которая принимает необработанные команды SQL для добавления новой таблицы.

Пример показан ниже:

func createTable(db *sql.DB) {
    users_table := `CREATE TABLE users (
        id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        "FirstName" TEXT,
        "LastName" TEXT,
        "Dept" TEXT,
        "Salary" INT);`
        query, err := db.Prepare(users_table)
        if err != nil {
            log.Fatal(err)
        }
        query.Exec()
        fmt.Println("Table created successfully!")
}

 

В приведенном выше примере мы создаем функцию, которая принимает необработанный SQL-запрос и выполняет его в указанной базе данных. Это создаст таблицу базы данных в SQLite.

 

Вставить функцию записи

Следующая часть — создание функции, позволяющей вставлять записи в таблицу. Пример кода показан ниже:

func addUsers(db *sql.DB, FirstName string, LastName string, Dept string, Salary int) {
    records := `INSERT INTO users(FirstName, LastName, Dept, Salary) VALUES (?, ?, ?, ?)`
    query, err := db.Prepare(records)
    if err != nil {
        log.Fatal(err)
    }
    _, err = query.Exec(FirstName, LastName, Dept, Salary)
    if err != nil {
        log.Fatal(err)
    }
}

 

Функция извлечения записей

Последняя функция, которую нам нужно создать, — это та, которая извлекает записи, хранящиеся в базе данных, например, как показано:

func fetchRecords(db *sql.DB) {
    record, err := db.Query("SELECT * FROM users")
    if err != nil {
        log.Fatal(err)
    }
    defer record.Close()
    for record.Next() {
        var id int
        var FirstName string
        var LastName string
        var Dept string
        var Salary int
        record.Scan(&id, &FirstName, &LastName, &Dept, &Salary)
        fmt.Printf("User: %d %s %s %s %d", id, FirstName, LastName, Dept, Salary)
    }
}

Приведенная выше функция использует итератор курсора для выборки строк из базы данных.

 

Выполнение запросов к базе данных

Как только мы объявили наши функции, нам нужно вызвать их, чтобы добавить записи в базу данных. Мы начнем с открытия файла базы данных. Затем мы вызываем методы createTable() и addUsers().

Пример кода показан ниже:

database, _ := sql.Open("sqlite3", "databsase.db")
    createTable(database)

    addUsers(database, "Ankita", "Maudie", "Game Developer", 140000)
    addUsers(database, "Emiliana", "Alfiya", "Bakend Developer", 120000)
    addUsers(database, "Emmet", "Brian", "DevOps Developer", 110000)
    addUsers(database, "Reidun", "Jorge", "Dtabase Developer", 140000)
    addUsers(database, "Tyrone", "Silvia", "Front-End Developer", 109000)
    defer database.Close()
// fetch records:
fetchRecords(database)

 

Раздел выше открывает базу данных для чтения и вставляет записи с помощью метода addUsers().

 

Скомпилировать и запустить

Для сборки программы вам потребуется установить компилятор GCC в вашей системе. Это требуется для пакета go-sqlite3. Проверьте ресурс ниже, чтобы узнать, как установить зависимости в вашей системе.

https://github.com/mattn/go-sqlite3

 

Теперь вы можете построить код как:

go build main.go

 

Вы можете запустить программу как:

./main.exe

 

Код должен возвращать записи, хранящиеся в базе данных.

 

Заключение

В этой статье обсуждается, как использовать базу данных SQLite в Golang с помощью пакета go-sqlite3.

Exit mobile version