1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package main
- import (
- "context"
- "fmt"
- "io/ioutil"
- "path/filepath"
- "github.com/vladimirok5959/golang-sql/gosql"
- )
- func main() {
-
- f, err := ioutil.TempFile("", "go-sqlite-")
- if err != nil {
- panic(fmt.Sprintf("%s", err))
- }
- f.Close()
-
- migrationsDir, err := filepath.Abs("./db/migrations")
- if err != nil {
- panic(fmt.Sprintf("%s", err))
- }
-
-
- db, err := gosql.Open("sqlite://"+f.Name(), migrationsDir, true)
- if err != nil {
- panic(fmt.Sprintf("%s", err))
- }
-
-
- if _, err := db.Exec(
- context.Background(),
- "INSERT INTO users (id, name) VALUES ($1, $2)",
- 5, "John",
- ); err != nil {
- panic(fmt.Sprintf("%s", err))
- }
-
- if rows, err := db.Query(
- context.Background(),
- "SELECT id, name FROM users ORDER BY id DESC",
- ); err == nil {
- type rowStruct struct {
- ID int64
- Name string
- }
- defer rows.Close()
- for rows.Next() {
- var row rowStruct
- if err := rows.Scan(&row.ID, &row.Name); err != nil {
- panic(fmt.Sprintf("%s", err))
- }
- fmt.Printf("ID: %d, Name: %s\n", row.ID, row.Name)
- }
- if err := rows.Err(); err != nil {
- panic(fmt.Sprintf("%s", err))
- }
- } else {
- panic(fmt.Sprintf("%s", err))
- }
-
- if err := db.Close(); err != nil {
- panic(fmt.Sprintf("%s", err))
- }
- }
|