mirror of
https://github.com/rjNemo/go-wiki
synced 2026-06-06 02:36:40 +00:00
59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
package data
|
|
|
|
import (
|
|
"database/sql"
|
|
"log"
|
|
|
|
_ "github.com/lib/pq" // postgresql database package
|
|
"github.com/rjNemo/go-wiki/model"
|
|
"github.com/rjNemo/go-wiki/settings"
|
|
)
|
|
|
|
// UsePSQL read the connection parameters to establish a connection to the
|
|
// database.
|
|
func UsePSQL() {
|
|
connStr := settings.ConnStr
|
|
db, err := sql.Open("postgres", connStr)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer db.Close()
|
|
|
|
err = db.Ping()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
log.Println("Database successfully connected!")
|
|
|
|
createUserTable(db)
|
|
store := NewUserStore(db)
|
|
// u := model.TestUser()
|
|
// store.Add(u)
|
|
// log.Print(u)
|
|
u1 := model.NewUser(3, 19, "paul", "newman", "PdsN@FDKML.COM")
|
|
store.Update(16, u1)
|
|
}
|
|
|
|
func sqlExec(db *sql.DB, s string) {
|
|
if _, err := db.Exec(s); err != nil {
|
|
log.Fatal(err)
|
|
return
|
|
}
|
|
log.Printf("Command successfully executed!: %s", s)
|
|
}
|
|
|
|
func createUserTable(db *sql.DB) {
|
|
sqlExec(db, QueryCreateTable)
|
|
log.Print("Table successfully created!")
|
|
}
|
|
|
|
// Store interface defines the methods any store must satisfy
|
|
type Store interface {
|
|
CreateTable()
|
|
Add(i interface{})
|
|
Get()
|
|
Find(id int)
|
|
Update(id int, i interface{})
|
|
Delete(id int)
|
|
}
|