Golang SQLite example
Представим, что у нас есть база данных SQLite с таблицей "users", в которой хранится информация о пользователях в следующем формате:
- ID (целое число, первичный ключ)
- Name (текстовое поле)
- Age (целое число)
Для того, чтобы работать с этой базой данных в Golang, необходимо установить пакет "database/sql" и драйвер SQLite "mattn/go-sqlite3".
1. Подключение к базе данных:
Для начала необходимо открыть соединение с базой данных. Это можно сделать следующим образом:
```
import (
"database/sql"
_ "github.com/mattn/go-sqlite3"
)
func main() {
db, err := sql.Open("sqlite3", "./users.db")
if err != nil {
panic(err)
}
defer db.Close()
}
```
В данном примере мы открыли соединение с базой данных "users.db", которая находится в той же директории, что и программа.
2. Создание таблицы:
Для создания таблицы необходимо выполнить SQL-запрос на языке SQL:
```
_, err = db.Exec("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)")
if err != nil {
panic(err)
}
```
Здесь мы создали таблицу "users" со столбцами "id", "name" и "age".
3. Добавление записи в таблицу:
Для добавления новой записи в таблицу необходимо выполнить SQL-запрос на языке SQL c использованием метода "Prepare" и "Exec" объекта "db":
```
stmt, err := db.Prepare("INSERT INTO users(name, age) values(?, ?)")
if err != nil {
panic(err)
}
defer stmt.Close()
_, err = stmt.Exec("John", 30)
if err != nil {
panic(err)
}
```
Здесь мы добавляем запись в таблицу "users" с именем "John" и возрастом 30.
4. Выборка данных из таблицы:
Для выборки данных необходимо выполнить SQL-запрос на языке SQL c использованием метода "Query" объекта "db":
```
rows, err := db.Query("SELECT id, name, age FROM users")
if err != nil {
panic(err)
}
defer rows.Close()
for rows.Next() {
var id int
var name string
var age int
err = rows.Scan(&id, &name, &age)
if err != nil {
panic(err)
}
fmt.Println(id, name, age)
}
```
Здесь мы выбираем все записи из таблицы "users" и выводим их на экран.
5. Обновление записи в таблице:
Для обновления записи необходимо выполнить SQL-запрос на языке SQL c использованием метода "Prepare" и "Exec" объекта "db":
```
stmt, err = db.Prepare("UPDATE users SET age = ? WHERE name = ?")
if err != nil {
panic(err)
}
defer stmt.Close()
_, err = stmt.Exec(35, "John")
if err != nil {
panic(err)
}
```
Здесь мы обновляем возраст пользователя "John" на 35 лет.
6. Удаление записи из таблицы:
Для удаления записи необходимо выполнить SQL-запрос на языке SQL c использованием метода "Prepare" и "Exec" объекта "db":
```
stmt, err = db.Prepare("DELETE FROM users WHERE name = ?")
if err != nil {
panic(err)
}
defer stmt.Close()
_, err = stmt.Exec("John")
if err != nil {
panic(err)
}
```
Здесь мы удаляем пользователя по имени "John" из таблицы "users".
Это только небольшой пример использования Golang и SQLite. С помощью этих методов можно выполнять различные операции с базой данных SQLite и получать необходимые данные.