xorm
该组件查询是默认根据结构体类名进行查询 ,也可以重写TableName() 方法
type User struct {
Id int
Name string
Age int
}
func main() {
database, err := xorm.NewEngine("mysql", "root:123456@tcp(127.0.0.1:3306)/test?charset=utf8&parseTime=True&loc=Local")
if err != nil {
fmt.Println("open mysql failed,", err)
return
}
pEveryOne := make([]*User, 0)
database.Where("id = ?",1).Find(&pEveryOne )
for _, user := range pEveryOne {
fmt.Println(user)
}
}
可以重写TableName() 方法
func (User) TableName() string {
return "user"
}
gorm
type User struct {
Id int `gorm:"column:id;PRIMARY_KEY"`
Name string `gorm:"column:name"`
Age int `gorm:"column:age"`
}
func main() {
database, err := gorm.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/test?charset=utf8&parseTime=True&loc=Local")
if err != nil {
fmt.Println("open mysql failed,", err)
return
}
user := User{}
database.Where("id= ?",1).Find(&user)
fmt.Println(user)
}
该返回为空struct
解决方案
重写TableName() 方法
// 将 User的表名设置为 `user`
func (User) TableName() string {
return "user"
}
或者
查询时指定表名