This commit is contained in:
JurajKubrican
2024-12-30 15:18:59 +01:00
parent 6a5a9dad90
commit 92e4dadf4a
6 changed files with 184 additions and 95 deletions

73
src/box-db.go Normal file
View File

@@ -0,0 +1,73 @@
package main
import (
"database/sql"
_ "github.com/mattn/go-sqlite3" // Import the SQLite driver
)
func initDb() *sql.DB {
db, err := sql.Open("sqlite3", "./data/data.db")
if err != nil {
e.Logger.Fatal(err)
}
// Create a table
sqlStmt := `
CREATE TABLE IF NOT EXISTS boxes (id INTEGER PRIMARY KEY, value BOOLEAN);
`
_, err = db.Exec(sqlStmt)
if err != nil {
e.Logger.Fatalf("%q: %s\n", err, sqlStmt)
}
return db
}
func getBoxes() map[int]bool {
rows, err := db.Query("SELECT id, value FROM boxes")
if err != nil {
e.Logger.Fatal(err)
}
boxes := make(map[int]bool, 1000)
for i := 0; i < 1000; i++ {
boxes[i] = false
}
for rows.Next() {
var id int
var value bool
err = rows.Scan(&id, &value)
if err != nil {
e.Logger.Fatal(err)
}
boxes[id] = value
}
defer rows.Close()
return boxes
}
func setBox(id int, value bool) {
e.Logger.Info("START INSERT")
stmt, err := db.Prepare("INSERT OR REPLACE INTO boxes(id, value) VALUES(?, ?)")
if err != nil {
e.Logger.Fatal(err)
}
e.Logger.Info("PREPARED")
res, err := stmt.Exec(id, value)
if err != nil {
e.Logger.Fatal(err)
}
stmt.Close()
e.Logger.Info("INSERTED")
e.Logger.Info(res)
}