mirror of
https://github.com/rjNemo/go-wiki
synced 2026-06-06 02:36:40 +00:00
70 lines
1.4 KiB
Go
70 lines
1.4 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"
|
|
)
|
|
|
|
// Connect read the connection parameters to establish a connection to the
|
|
// database.
|
|
func Connect() {
|
|
log.Print("Inside connect func")
|
|
connStr := settings.ConnStr
|
|
db, err := sql.Open("postgres", connStr)
|
|
log.Print("opened connect")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer db.Close()
|
|
|
|
log.Print("try to ping")
|
|
err = db.Ping()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
log.Println("Database successfully connected!")
|
|
|
|
createTable(db)
|
|
u := model.TestUser()
|
|
insertUser(db, u)
|
|
log.Print(u)
|
|
}
|
|
|
|
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 createTable(db *sql.DB) {
|
|
sqlExec(db, QueryCreateTable)
|
|
log.Print("Table successfully created!")
|
|
}
|
|
|
|
func insertUser(db *sql.DB, u model.User) {
|
|
id := 0
|
|
err := db.QueryRow(QueryInsertUser, u.Age(), u.Email(), u.FirstName(), u.LastName()).Scan(&id)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
// u.SetID(id)
|
|
log.Println("New User ID is:", id)
|
|
}
|
|
|
|
func insertUsers(db *sql.DB) {
|
|
query := `
|
|
INSERT INTO users (age, email, first_name, last_name)
|
|
VALUES ($1, $2, $3, $4)`
|
|
|
|
_, err := db.Exec(query, 32, "ruidy.nemausat@gmail.com", "Ruidy", "Nemausat")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|