首頁 > 軟體

搭建Go語言的ORM框架Gorm的具體步驟(從Java到go)

2022-09-26 14:04:29

【提問】

如何使用Goland軟體,搭建一個ORM框架GORM?

【解答】

具體步驟如下:

1、檢查Go的安裝

在任意目錄執行如下命令:

go version

若有如下返回,則安裝成功;如果報異常,則重新安裝golang

go version go1.19.1 darwin/arm64

2、安裝Gorm

在任意目錄執行如下命令安裝grom:

go get -u gorm.io/gorm

3、安裝對應資料庫的驅動

根據你的資料庫,在任意目錄執行如下命令安裝驅動:

//mysql
go get -u gorm.io/driver/mysql
//sqlite
go get -u gorm.io/driver/sqlite
//sqlserver
go get -u gorm.io/driver/sqlserver
//clickhouse
go get -u gorm.io/driver/clickhouse

4、編寫「資料庫連線」程式碼

這裡以連線mysql為例,在工程中建立用於資料庫連線的go檔案,其中dsn中內容需要根據自己資料庫的資訊進行替換,如下:

package db

import (
	"fmt"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)
var DB *gorm.DB

func InitGormDB() (err error) {
	dsn := "user:pwd@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		fmt.Printf("資料庫連線失敗:%vn", err)
	} else {
		fmt.Printf("資料庫連線成功n")
		DB = db
	}
	return err
}

同時在main.go中增加對其的呼叫,在服務啟動時就進行資料庫連線:

package main

import (
	"fullstars/src/common/db"
)

func main() {

	db.InitGormDB()

}

啟動服務後,可以看到連線成功的紀錄檔:

5、編寫「資料Model」程式碼

資料庫連線後,我們就對這個資料庫進行一些表對映和簡單查詢操作。
首先,看一下我們需要操作的資料庫表:

CREATE TABLE `config`  (
  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '型別',
  `key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `value` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立時間',
  `modifytime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間',
  `deleteflag` tinyint(3) NOT NULL DEFAULT 0 COMMENT '邏輯刪除標識',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

然後在工程中,新建Model檔案:configModel.go,如下:

type Config struct {
	ID         int
	TYPE       string
	KEY        string
	VALUE      string
	CREATETIME time.Time
	MODIFYTIME time.Time
	DELETEFLAG int
}

func (Config) TableName() string {
	return "config"
}

需要說明的,gorm中的Model應與資料表一一對應,gorm會進行自動轉換對映。

6、編寫「資料查詢」程式碼

在工程中,新建檔案:configService.go,用於運算元據庫和邏輯處理,如下:
其中「.Debug()」是為了在紀錄檔中列印Gorm真實拿去資料庫執行的sql,方便我們檢視和核對。

package config

import (
	"fullstars/src/common/db"
)

func ConfigService() {
	var configs []Config
	db.DB.Debug().Find(&configs)

	var config Config
	db.DB.Debug().Where("id = ?", 2).Find(&config)
}

同樣在main.go中增加對其的呼叫:

package main

import (
	"fullstars/src/common/db"
)

func main() {
	db.InitGormDB()
	config.ConfigService()
}

偵錯啟動後,我們可以看一下變數的結果,資料已經被查詢出來了:

到此這篇關於搭建Go語言的ORM框架Gorm的具體步驟(從Java到go)的文章就介紹到這了,更多相關go orm框架內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com