欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Gorm操作Oracle數(shù)據(jù)庫踩坑記錄

 更新時間:2022年06月14日 11:02:00   作者:Monkey_D_Newdun  
gorm是目前用得最多的go語言orm庫,本文主要介紹了使用Gorm操作Oracle數(shù)據(jù)庫踩坑記錄,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

gorm是目前用得最多的go語言orm庫,但是目前gorm官方并不支持oracle的驅(qū)動,需要用到第三驅(qū)動,最近有個項目要往oracle寫數(shù)據(jù),記錄一下踩到的坑

下載依賴

go get github.com/cengsin/oracle

這個驅(qū)動與最新的gorm庫不匹配,要將gorm降級到1.21版本,不然會出現(xiàn)“......github.com/cengsin/oracle@v1.0.0/oracle.go:53:59: unknown field 'WithReturning' in struct literal of type callbacks.Config” 錯誤

項目結(jié)構(gòu)

包含main.go和一個model目錄。

|——oracle_test
|    |——model
|        |——model.go
|    |——main.go
|    |——go.mod

編輯go.mod將gorm降級

module oracle_test
 
go 1.16
 
require (
    github.com/cengsin/oracle v1.0.0
    gorm.io/gorm v1.21.16
)

運行g(shù)o mod tidy命令生效

定義model類型

假設(shè)數(shù)據(jù)庫里有張商店信息的表shops,包含ID和店名兩個字段,編寫如下model.go文件。其中結(jié)構(gòu)體方法TableName指定改類型對應(yīng)的數(shù)據(jù)表。

package model
 
type ShopInfo struct {
    ShopId   string `gorm:"column:SHOPID;not null"`
    ShopName string `gorm:"column:SHOPNAME;not null"`
}
 
func (s *ShopInfo) TableName() string {
    return "shops"
}

連接數(shù)據(jù)庫 

連接名"database/password@127.0.0.1:1521/XE"中database是數(shù)據(jù)庫名,password是密碼,XE是服務(wù)名。LogLevel為logger.Warn會打印大多數(shù)sql語句,設(shè)為logger.Error只會打印運行出錯的sql語句。

package main
 
import (
    "fmt"
    "log"
    "os"
    "time"
 
    "oracle_test/model"
 
    "github.com/cengsin/oracle"
    "gorm.io/gorm"
    "gorm.io/gorm/logger"
)
 
func test() {
    log.Println("initial database connect……")
    db, err := gorm.Open(oracle.Open("database/password@127.0.0.1:1521/XE"), &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.ShopInfo{}); e != nil {
        log.Fatalln(e.Error())
    }
    shopInfo := new(model.ShopInfo)
    db.First(shopInfo)
    fmt.Print(*shopInfo)
}

測試運行

go run ./main.go

到此這篇關(guān)于使用Gorm操作Oracle數(shù)據(jù)庫踩坑記錄的文章就介紹到這了,更多相關(guān)Gorm操作Oracle內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Hugo?Config模塊構(gòu)建實現(xiàn)源碼剖析

    Hugo?Config模塊構(gòu)建實現(xiàn)源碼剖析

    這篇文章主要為大家介紹了Hugo?Config模塊構(gòu)建實現(xiàn)源碼剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Go語言七篇入門教程三函數(shù)方法及接口

    Go語言七篇入門教程三函數(shù)方法及接口

    這篇文章主要為大家介紹了Go語言的函數(shù)方法及接口的示例詳解,本文是Go語言七篇入門系列文章,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • Go開發(fā)Gin項目添加jwt功能實例詳解

    Go開發(fā)Gin項目添加jwt功能實例詳解

    這篇文章主要為大家介紹了Go開發(fā)Gin項目中添加jwt功能實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Go??import _ 下劃線使用

    Go??import _ 下劃線使用

    這篇文章主要為大家介紹了Go??import下劃線_使用小技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • 使用Go基于WebSocket構(gòu)建千萬級視頻直播彈幕系統(tǒng)的代碼詳解

    使用Go基于WebSocket構(gòu)建千萬級視頻直播彈幕系統(tǒng)的代碼詳解

    這篇文章主要介紹了使用Go基于WebSocket構(gòu)建千萬級視頻直播彈幕系統(tǒng),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • go redis實現(xiàn)滑動窗口限流的方式(redis版)

    go redis實現(xiàn)滑動窗口限流的方式(redis版)

    這篇文章主要介紹了go redis實現(xiàn)滑動窗口限流的方式(redis版),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Go語言數(shù)據(jù)結(jié)構(gòu)之插入排序示例詳解

    Go語言數(shù)據(jù)結(jié)構(gòu)之插入排序示例詳解

    這篇文章主要為大家介紹了Go語言數(shù)據(jù)結(jié)構(gòu)之插入排序示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Go?語言?json解析框架與?gjson?詳解

    Go?語言?json解析框架與?gjson?詳解

    這篇文章主要介紹了Go語言json解析框架與gjson,JSON?解析是我們不可避免的常見問題,在Go語言中,我們可以借助gjson庫來方便的進行json屬性的提取與解析,需要的朋友可以參考一下
    2022-07-07
  • go slice不同初始化方式性能及數(shù)組比較詳解

    go slice不同初始化方式性能及數(shù)組比較詳解

    這篇文章主要為大家介紹了go slice不同初始化方式性能及數(shù)組比較示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 在Go語言項目中使用Zap日志庫的操作過程

    在Go語言項目中使用Zap日志庫的操作過程

    本文將先介紹Go語言原生的日志庫的使用,然后詳細介紹非常流行的Uber開源的zap日志庫,同時會介紹如何搭配·Lumberjack·實現(xiàn)日志的切割和歸檔,對Go使用Zap日志庫相關(guān)知識感興趣的朋友一起看看吧
    2024-03-03

最新評論