package db import ( "database/sql" "fmt" "sync" "th7/data/core" _ "github.com/mattn/go-sqlite3" ) type SQLite3Adapter struct { mu sync.Mutex db *sql.DB } func NewSQLite3Adapter(path string) (*SQLite3Adapter, error) { var adapter SQLite3Adapter db, err := sql.Open("sqlite3", path) if err != nil { return &adapter, err } adapter.db = db const create string = ` CREATE TABLE IF NOT EXISTS logs ( id INTEGER NOT NULL, type TEXT NOT NULL, unit TEXT NOT NULL, value REAL NOT NULL, timestamp TEXT NOT NULL );` if _, err := adapter.db.Exec(create); err != nil { return &adapter, err } return &adapter, nil } func (ad *SQLite3Adapter) Close() { ad.db.Close() } func (ad *SQLite3Adapter) Save(data core.Data) { ad.mu.Lock() defer ad.mu.Unlock() fmt.Println("TODO save data...", data) }