在 Golang 中,可以使用 database/sql
包来执行 SQL 查询,并将结果填充到对象中。以下是一个示例代码:
// 定义一个结构体表示记录
type User struct {
ID int
Username string
Email string
}
// 执行查询并填充到对象中
func getUserById(id int) (*User, error) {
// 打开数据库连接
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
if err != nil {
return nil, err
}
defer db.Close()
// 执行查询
row := db.QueryRow("SELECT id, username, email FROM users WHERE id = ?", id)
// 将查询结果填充到对象中
var user User
err = row.Scan(&user.ID, &user.Username, &user.Email)
if err != nil {
return nil, err
}
return &user, nil
}
在上面的代码中,我们定义了一个 User
结构体来表示用户记录,然后使用 db.QueryRow
函数执行查询并返回一行记录。接着,我们使用 row.Scan
函数将查询结果填充到 User
对象中。
需要注意的是,在使用 Scan
函数填充对象时,要确保对象字段的类型与查询结果一致,否则会出现类型错误。