问题解决:gorm查询oracle库表,返回struct字段数据为空的问题

文章介绍了如何在Go语言中使用GormORM库连接Oracle数据库,创建和操作BBUser模型,并执行SQL查询。主要涉及了模型定义、数据库连接配置和基本查询操作。
摘要由CSDN通过智能技术生成
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
)

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值