本文主要是介绍问题解决:gorm查询oracle库表,返回struct字段数据为空的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
package model// 表对应的struct
// github.com/cengsin/oracle v1.0.0
// gorm.io/gorm v1.21.16
// 注意:column:USERNAME字段必须大写(oracle表中字段名大写),否则查询出的struct字段值会为空
type BBUser struct {Username string `gorm:"column:USERNAME" json:"username"`Status int `gorm:"column:STATUS" json:"status"`
}func (s *BBUser) TableName() string {return "BBUSER"
}
package mainimport ("demo/model""fmt""log""os""time""github.com/cengsin/oracle""gorm.io/gorm""gorm.io/gorm/logger"
)func main() {test()
}func test() {log.Println("initial database connect……")db, err := gorm.Open(oracle.Open("a/b@127.0.0.1:1521/c"), &gorm.Config{Logger: logger.New(log.New(os.Stdout, "\r\n", log.LstdFlags), logger.Config{SlowThreshold: 1 * time.Millisecond,LogLevel: logger.Warn, //打印级别Colorful: true,}),//SkipDefaultTransaction: true,})if err != nil {log.Fatalln(err)}// if e := db.AutoMigrate(&model.BBUser{}); e != nil {// log.Fatalln(e.Error())// }tableExists := db.Migrator().HasTable(&model.BBUser{})fmt.Println("tableExists:", tableExists)var bb model.BBUserdb.Raw("select * FROM BBUSER where rownum <2").Scan(&bb)fmt.Println("BBUSER:", bb)
}
库依赖 go.mod :
go 1.21.5require (github.com/cengsin/oracle v1.0.0gorm.io/gorm v1.21.16
)
这篇关于问题解决:gorm查询oracle库表,返回struct字段数据为空的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!