数据库_查询数据"/>
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 intUsername stringPassword stringEmail string
}func (user *User) GetUserByID() (*User, error) {//写 sql 语句sqlStr := "select id , username , password , email from users where id = ?"//执行 sqlrow := chapter02.Db.QueryRow(sqlStr, user.ID)//声明三个变量var id intvar username stringvar password stringvar 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 model01import ("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)
}
成功
2.获取多条记录
user.go
func (user *User) GetUsers() ([]*User, error) {//写 sql 语句sqlStr := "select id , username , password , email from users"//执行 sqlrows, err := chapter02.Db.Query(sqlStr)if err != nil {return nil, err}//定义一个 User 切片var users []*User//遍历for rows.Next() {//声明四个个变量var userID intvar username stringvar password stringvar 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-数据库_查询数据
发布评论