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
)