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 main
import (
"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.BBUser
db.Raw("select * FROM BBUSER where rownum <2").Scan(&bb)
fmt.Println("BBUSER:", bb)
}
库依赖 go.mod :
go 1.21.5
require (
github.com/cengsin/oracle v1.0.0
gorm.io/gorm v1.21.16
)
更多【oracle-问题解决:gorm查询oracle库表,返回struct字段数据为空的问题】相关视频教程:www.yxfzedu.com