0
点赞
收藏
分享

微信扫一扫

Golang_web-数据库_查询数据

Golang


文章目录

  • ​​Golang​​
  • ​​1.1 获取一条记录​​
  • ​​1.1 test​​
  • ​​2.获取多条记录​​
  • ​​2.1 test​​


1.1 获取一条记录

根据用户的 id 从数据库中获取一条记录

user.go

import (
"fmt"
"go_code02/webapp/chapter02"
)
type User struct { ID int
Username string
Password string
Email string
}

func (user *User) GetUserByID() (*User, error) {
//写 sql 语句
sqlStr := "select id , username , password , email from users where id = ?"
//执行 sql
row := chapter02.Db.QueryRow(sqlStr, user.ID)
//声明三个变量
var id int
var username string
var password string
var email string
//将各个字段中的值读到以上三个变量中
err := row.Scan(&id, &username, &password, &email)
if err != nil {
return nil, err
}
//将三个变量的值赋给 User 结构体
u := &User{
ID: id,
Username: username,
Password: password,
Email: email,
}
return u, nil
}

1.1 test

user_test.go

package model01

import (
"fmt"
"testing"
)
func TestGetUserById(t *testing.T) {
fmt.Println("测试添加用户:")
user := &User{
ID: 1,
Username: "admin3",
Password: "123456",
Email: "admin3@atguigu.com",
}
//将 user 添加到数据库中
u, _ := user.GetUserByID()
fmt.Println("得到的信息为",u)
}

Golang_web-数据库_查询数据_字段

Golang_web-数据库_查询数据_sql_02
成功

2.获取多条记录

user.go

func (user *User) GetUsers() ([]*User, error) {
//写 sql 语句
sqlStr := "select id , username , password , email from users"
//执行 sql
rows, err := chapter02.Db.Query(sqlStr)
if err != nil {
return nil, err
}
//定义一个 User 切片
var users []*User
//遍历
for rows.Next() {
//声明四个个变量
var userID int
var username string
var password string
var email string
//将各个字段中的值读到以上三个变量中
err := rows.Scan(&userID, &username, &password, &email)
if err != nil {
return nil, err
}
//将三个变量的值赋给 User 结构体
u := &User{
ID: userID,
Username: username,
Password: password,
Email: email,
}
//将 u 添加到 users 切片中
users = append(users, u)
}
return users, nil
}

2.1 test

user_test.go

func TestGetUse(t *testing.T) {
fmt.Println("测试添加用户:")
user := &User{
}
//将 user 添加到数据库中
u, _ := user.GetUsers()
fmt.Println("得到的信息为",u)
for k, v := range u{
fmt.Println("第%v个用户是%v", k+1 ,v)
}
}

Golang_web-数据库_查询数据_sql_03
Golang_web-数据库_查询数据_数据库_04
Golang_web-数据库_查询数据_数据库_05
成功

举报

相关推荐

0 条评论