Files
msw-open-music/pkg/database/database.go

40 lines
593 B
Go

package database
import (
"database/sql"
"sync"
_ "github.com/mattn/go-sqlite3"
)
type Database struct {
sqlConn *sql.DB
stmt *Stmt
singleThreadLock *sync.Mutex
}
func NewDatabase(dbName string) (*Database, error) {
var err error
// open database
sqlConn, err := sql.Open("sqlite3", dbName)
if err != nil {
return nil, err
}
// prepare statement
stmt, err := NewPreparedStatement(sqlConn)
if err != nil {
return nil, err
}
// new database
database := &Database{
sqlConn: sqlConn,
stmt: stmt,
singleThreadLock: &sync.Mutex{},
}
return database, nil
}