Golang. SQLite

SQLite — это простой, минималистичный, быстрый и надежный механизм базы данных SQL. Это очень популярный и эффективный выбор для тестирования из-за его простоты и доступности.
В этой статье вы узнаете, как работать с SQLite на языке программирования Go. В этой статье используется очень простой пример, что делает его подходящим для начинающих.
Требования
Чтобы следовать этой статье, вам понадобится следующее:
- Последняя версия компилятора Go.
- Текстовый редактор на ваш выбор.
- Базовые знания 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.
Редактор: AndreyEx