gorm查询结果到基本类型、map
gorm是一个Go的orm框架,之前学到的都是用结构体去查,今天经过测试,发现可以直接用基础数据类型或者map来接查询的结果;
我现在这里有一个结构体,学生:
type Student struct {
gorm.Model
Name string
Age uint
}
然后插入三条数据,开始我们的测试
查询name和age
var name string
var age uint
var names []string
var ages []uint
db.Model(Student{}).Select("name").First(&name)
db.Model(Student{}).Select("age").First(&age)
db.Model(Student{}).Select("name").Find(&names)
db.Model(Student{}).Select("age").Find(&ages)
fmt.Println(name,age)
fmt.Println(names)
fmt.Println(ages)
使用map查询
Gorm文档中提到允许扫描结果至map[string]interface{}或[]map[string]interface{}
我们通过代码试一下
var res1 map[string]interface{}
var res2 []map[string]interface{}
var res3 []map[string]interface{}
db.Model(Student{}).First(&res1)
db.Model(Student{}).Find(&res2)
db.Model(Student{}).Select("name","age").Find(&res3)
fmt.Println(res1)
fmt.Println(res2)
fmt.Println(res3)
第一个查询,查出第一行然后将信息写入到map中
第二个查询,查出所有行,放入一个map切片中,一行一个map
第三个查询,指定了查哪些内容