th7/db/sqlite3.go

54 lines
844 B
Go
Raw Normal View History

2022-11-12 14:20:29 +00:00
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)
}