无法使用 GORM 获取数据
Can't get data with GORM
我正在尝试从 mysql 数据库获取数据
但不要 return 任何东西。
这是我第一次使用 Gorm,我对 Go 的体验很差。
package main
import (
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
"fmt"
)
type productos struct {
gorm.Model
id_producto int `gorm:"type:int, primary_key"`
stock int `gorm:"type:int"`
codigo string `gorm:"type:varchar(45)"`
rubro string `gorm:"type:varchar(100)" `
descripcion string `gorm:"type:varchar(140)" `
proveedores string `gorm:"type:varchar(250)" `
moneda string `gorm:"type:varchar(10)" `
costo float32 `gorm:"type:decimal" `
iva float32 `gorm:"type:decimal" `
pedir bool `gorm:"type:tinyint" `
}
func main() {
db, err := gorm.Open("mysql", "root:1281@/electronica?charset=utf8&parseTime=True&loc=Local")
if(err != nil){
panic(err)
}else{
fmt.Println("Conexión obtenida")
}
prod := &productos{}
db.First(&prod)
fmt.Println(prod.codigo)
db.Close()
}
使用以下代码片段:
type Productos struct {
gorm.Model
// Remove the ProductoID field if you want to use the default gorm Model
// ProductoID int `gorm:"type:int, primary_key"`
Stock int `gorm:"type:int"`
Codigo string `gorm:"type:varchar(45)"`
Rubro string `gorm:"type:varchar(100)" `
Descripcion string `gorm:"type:varchar(140)" `
Proveedores string `gorm:"type:varchar(250)" `
Moneda string `gorm:"type:varchar(10)" `
Costo float32 `gorm:"type:decimal" `
Iva float32 `gorm:"type:decimal" `
Pedir bool `gorm:"type:tinyint" `
}
func main() {
db, err := gorm.Open("mysql", "root:admin123@/test?charset=utf8&parseTime=True&loc=Local")
if err != nil {
panic(err)
}
defer db.Close()
if !db.HasTable(&Productos{}) {
if err := db.AutoMigrate(&Productos{}).Error; err != nil {
}
db.Create(&Productos{
Stock: 2,
Codigo: "a",
Rubro: "b",
Descripcion: "c",
Proveedores: "d",
Moneda: "e",
Costo: 0,
Iva: 0,
})
}
producto := &Productos{}
db.First(producto)
fmt.Printf("%+v\n", producto)
}
就像@Burak Serdar 指出的那样,您的字段未导出(未大写),因此在您的情况下,它们对 gorm
包
不可见
In Go, a name is exported if it begins with a capital letter. Any "unexported" names are not accessible from outside the package.
围棋之旅的更多信息:Exported names
我得到了答案。我的问题是:
我包括默认的 Gorm 模型,这不等于数据库,当把它放出来时,工作正常
真的很抱歉我的英语不好
我正在尝试从 mysql 数据库获取数据 但不要 return 任何东西。 这是我第一次使用 Gorm,我对 Go 的体验很差。
package main
import (
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
"fmt"
)
type productos struct {
gorm.Model
id_producto int `gorm:"type:int, primary_key"`
stock int `gorm:"type:int"`
codigo string `gorm:"type:varchar(45)"`
rubro string `gorm:"type:varchar(100)" `
descripcion string `gorm:"type:varchar(140)" `
proveedores string `gorm:"type:varchar(250)" `
moneda string `gorm:"type:varchar(10)" `
costo float32 `gorm:"type:decimal" `
iva float32 `gorm:"type:decimal" `
pedir bool `gorm:"type:tinyint" `
}
func main() {
db, err := gorm.Open("mysql", "root:1281@/electronica?charset=utf8&parseTime=True&loc=Local")
if(err != nil){
panic(err)
}else{
fmt.Println("Conexión obtenida")
}
prod := &productos{}
db.First(&prod)
fmt.Println(prod.codigo)
db.Close()
}
使用以下代码片段:
type Productos struct {
gorm.Model
// Remove the ProductoID field if you want to use the default gorm Model
// ProductoID int `gorm:"type:int, primary_key"`
Stock int `gorm:"type:int"`
Codigo string `gorm:"type:varchar(45)"`
Rubro string `gorm:"type:varchar(100)" `
Descripcion string `gorm:"type:varchar(140)" `
Proveedores string `gorm:"type:varchar(250)" `
Moneda string `gorm:"type:varchar(10)" `
Costo float32 `gorm:"type:decimal" `
Iva float32 `gorm:"type:decimal" `
Pedir bool `gorm:"type:tinyint" `
}
func main() {
db, err := gorm.Open("mysql", "root:admin123@/test?charset=utf8&parseTime=True&loc=Local")
if err != nil {
panic(err)
}
defer db.Close()
if !db.HasTable(&Productos{}) {
if err := db.AutoMigrate(&Productos{}).Error; err != nil {
}
db.Create(&Productos{
Stock: 2,
Codigo: "a",
Rubro: "b",
Descripcion: "c",
Proveedores: "d",
Moneda: "e",
Costo: 0,
Iva: 0,
})
}
producto := &Productos{}
db.First(producto)
fmt.Printf("%+v\n", producto)
}
就像@Burak Serdar 指出的那样,您的字段未导出(未大写),因此在您的情况下,它们对 gorm
包
In Go, a name is exported if it begins with a capital letter. Any "unexported" names are not accessible from outside the package.
围棋之旅的更多信息:Exported names
我得到了答案。我的问题是: 我包括默认的 Gorm 模型,这不等于数据库,当把它放出来时,工作正常
真的很抱歉我的英语不好