首先我们看一下多行查询的代码
func queryMultiDemo() {
var user User
sqlStr := "select id, name, age from user where id > ?"
rows, err := DB.Query(sqlStr, 0)
if err != nil {
fmt.Printf("query failed, err:%v\n", err)
return
}
defer func() {
rows.Close() // 会释放数据库连接
}()
// 循环读取数据
for rows.Next() {
err := rows.Scan(&user.id, &user.name, &user.age)
if err != nil {
fmt.Printf("scan failed, err:%v\n", err)
return
}
fmt.Printf("user:%#v\n", user)
}
}
DB.Query(sqlStr, 0)返回了两个对象,rows是一个可迭代对象,有一个.Next()方法,通过循环读取,可以得到里面的变量
defer func() {
rows.Close() // 会释放数据库连接
}()
这段代码是为了释放数据库的连接。
然后我们看一下插入操作的代码</