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