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

94 lines
1.8 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.17.2
// source: query.sql
package main
import (
"context"
"time"
)
const addStudent = `-- name: addStudent :execlastid
insert into students (fname, lname, date_of_birth, email, gender, address) values (?, ?, ?, ?, ?, ?)
`
type addStudentParams struct {
Fname string
Lname string
DateOfBirth time.Time
Email string
Gender string
Address string
}
func (q *Queries) addStudent(ctx context.Context, arg addStudentParams) (int64, error) {
result, err := q.db.ExecContext(ctx, addStudent,
arg.Fname,
arg.Lname,
arg.DateOfBirth,
arg.Email,
arg.Gender,
arg.Address,
)
if err != nil {
return 0, err
}
return result.LastInsertId()
}
const fetchStudents = `-- name: fetchStudents :many
SELECT id, fname, lname, date_of_birth, email, address, gender FROM students LIMIT 10
`
func (q *Queries) fetchStudents(ctx context.Context) ([]Student, error) {
rows, err := q.db.QueryContext(ctx, fetchStudents)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Student
for rows.Next() {
var i Student
if err := rows.Scan(
&i.ID,
&i.Fname,
&i.Lname,
&i.DateOfBirth,
&i.Email,
&i.Address,
&i.Gender,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const studentByID = `-- name: studentByID :one
SELECT id, fname, lname, date_of_birth, email, address, gender FROM students WHERE id = ?
`
func (q *Queries) studentByID(ctx context.Context, id int64) (Student, error) {
row := q.db.QueryRowContext(ctx, studentByID, id)
var i Student
err := row.Scan(
&i.ID,
&i.Fname,
&i.Lname,
&i.DateOfBirth,
&i.Email,
&i.Address,
&i.Gender,
)
return i, err
}