sql.Rows 示例
时间: 2023-07-19 18:35:49 浏览: 109
在 Go 语言中,`Rows` 是一个接口类型,它代表一个 SQL 查询的结果集,可以通过 `*sql.Rows` 类型的指针来访问和操作查询结果。`Rows` 接口提供了一些方法,可以帮助我们遍历查询结果,并获取查询结果中的数据。
以下是一个使用 `Rows` 接口的示例代码:
```go
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// 连接 MySQL 数据库
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database_name")
if err != nil {
panic(err)
}
defer db.Close()
// 执行 SELECT 操作
rows, err := db.Query("SELECT * FROM users")
if err != nil {
panic(err)
}
defer rows.Close()
// 遍历查询结果
for rows.Next() {
var id int
var name string
var email string
err := rows.Scan(&id, &name, &email)
if err != nil {
panic(err)
}
fmt.Printf("ID: %d, Name: %s, Email: %s\n", id, name, email)
}
// 检查查询错误
err = rows.Err()
if err != nil {
panic(err)
}
}
```
在上面的示例中,我们连接了一个 MySQL 数据库,然后执行了一条 SELECT 语句。接着,我们通过调用 `db.Query` 方法执行这条 SQL 语句,并获取了查询结果的 `*sql.Rows` 类型的指针。我们可以通过调用 `rows.Next()` 方法遍历查询结果中的每一行数据,并通过调用 `rows.Scan()` 方法获取每一行数据中的字段值。最后,我们通过调用 `rows.Err()` 方法检查是否有查询错误发生。
阅读全文