1. 查询结果到结构体的转换:
- 使用 g.DB().Model(&User{}).Scan(&user) 将查询结果转换为结构体。
package main
import (
"fmt"
"github.com/gogf/gf/frame/g"
)
type User struct {
Id int
Name string
}
func main() {
var user User
err := g.DB().Table("user").Where("id=?", 1).Scan(&user)
if err == nil {
fmt.Printf("%+v\n", user)
} else {
fmt.Println(err)
}
}
2. 查询结果到切片的转换:
- 使用 g.DB().Model(&User{}).Where("age > ?", 18).Scan(&userList) 将查询结果转换为结构体切片。
package main
import (
"fmt"
"github.com/gogf/gf/frame/g"
)
type User struct {
Id int
Name string
}
func main() {
var userList []User
err := g.DB().Table("user").Where("age > ?", 18).Scan(&userList)
if err == nil {
fmt.Printf("%+v\n", userList)
} else {
fmt.Println(err)
}
}
3. 查询结果到 Map 的转换:
- 使用 g.DB().Table("user").Where("id=?", 1).Scan(&userMap) 将查询结果转换为 Map。
package main
import (
"fmt"
"github.com/gogf/gf/frame/g"
)
func main() {
var userMap g.Map
err := g.DB().Table("user").Where("id=?", 1).Scan(&userMap)
if err == nil {
fmt.Printf("%+v\n", userMap)
} else {
fmt.Println(err)
}
}
4. 查询结果到 JSON 字符串的转换:
- 使用 g.DB().Table("user").Where("id=?", 1).Scan(&jsonStr) 将查询结果转换为 JSON 字符串。
package main
import (
"fmt"
"github.com/gogf/gf/frame/g"
)
func main() {
var jsonStr string
err := g.DB().Table("user").Where("id=?", 1).Scan(&jsonStr)
if err == nil {
fmt.Println(jsonStr)
} else {
fmt.Println(err)
}
}
这些是在 GoFrame 中使用 Scan 方法进行类型转换的一些基本操作。在实际应用中,可以根据具体的查询需求和结果类型进行适当的调整。
转载请注明出处:http://www.zyzy.cn/article/detail/7599/GoFrame