写一个golang中 dao层 查询用户表所有用户的函数
时间: 2023-12-14 19:37:01 浏览: 101
假设用户表的结构体定义如下:
```go
type User struct {
ID int64
Username string
Password string
Email string
}
```
那么查询用户表所有用户的 dao 函数可以如下实现:
```go
func FindAllUsers() ([]*User, error) {
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database")
if err != nil {
return nil, err
}
defer db.Close()
rows, err := db.Query("SELECT id, username, password, email FROM user")
if err != nil {
return nil, err
}
defer rows.Close()
var users []*User
for rows.Next() {
user := &User{}
err := rows.Scan(&user.ID, &user.Username, &user.Password, &user.Email)
if err != nil {
return nil, err
}
users = append(users, user)
}
return users, nil
}
```
这里使用了 `sql` 包来操作 MySQL 数据库,使用 `sql.Open` 打开数据库连接,通过 `db.Query` 执行 SQL 语句查询所有用户,遍历查询结果,将每个用户的信息填充到 `User` 结构体中,最终返回所有用户的切片。注意在使用完数据库连接和查询结果后要及时关闭,可以使用 `defer` 关键字来实现。
阅读全文