Поиск по сайту:

Пока люди любят, они прощают (Ларошфуко).

Golang. SQLite

4 мин для чтения
FavoriteLoadingДобавить в избранное
1 марта 2022
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!")
}

 

Читать  Как я могу исключить каталоги с помощью команды grep -R

В приведенном выше примере мы создаем функцию, которая принимает необработанный 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. Проверьте ресурс ниже, чтобы узнать, как установить зависимости в вашей системе.

Читать  Как измерить и показать прогресс копирования rsync в Linux?

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

 

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

go build main.go

 

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

./main.exe

 

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

 

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:
5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close