learning_go/go-code-samples/go-db-comparison/examples/sqlc/sqlc.go
2025-12-20 10:21:45 +03:00

53 lines
1.1 KiB
Go

package main
import (
"context"
"database/sql"
"fmt"
"log"
"time"
_ "github.com/go-sql-driver/mysql"
)
func main() {
conn, err := sql.Open("mysql", "theuser:thepass@tcp(localhost:3306)/thedb?parseTime=true")
if err != nil {
log.Fatal(err)
}
fmt.Println("Connected!")
db := New(conn)
//initializing record to be inserted
newSt := addStudentParams{
Fname: "Leon",
Lname: "Ashling",
DateOfBirth: time.Date(1994, time.August, 14, 23, 51, 42, 0, time.UTC),
Email: "lashling5@senate.gov",
Gender: "Male",
Address: "39 Kipling Pass",
}
// inserting the record
sID, err := db.addStudent(context.Background(), newSt)
if err != nil {
log.Fatal(err)
}
fmt.Printf("addSudent id: %v \n", sID)
//retreive record by id
st, err := db.studentByID(context.Background(), sID)
if err != nil {
log.Println(err)
}
fmt.Printf("studentByID record: %v \n", st)
//fetching multiple records
students, err := db.fetchStudents(context.Background())
if err != nil {
log.Println(err)
}
fmt.Printf("fetchStudents count: %v \n", len(students))
}