最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2022年09月23日 15:19:45   作者:幽靈霧  
很多朋友不知道如何使用Goland軟件,搭建一個ORM框架GORM,今天小編給大家分享一篇教程關于搭建Go語言的ORM框架Gorm的具體步驟(從Java到go),感興趣的朋友跟隨小編一起學習下吧

【提問】

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

【解答】

具體步驟如下:

1、檢查Go的安裝

在任意目錄執(zhí)行如下命令:

go version

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

go version go1.19.1 darwin/arm64

2、安裝Gorm

在任意目錄執(zhí)行如下命令安裝grom:

go get -u gorm.io/gorm

3、安裝對應數據庫的驅動

根據你的數據庫,在任意目錄執(zhí)行如下命令安裝驅動:

//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為例,在工程中創(chuàng)建用于數據庫連接的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("數據庫連接失?。?v\n", 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 '創(chuàng)建時間',
  `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真實拿去數據庫執(zhí)行的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框架內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • go實現整型的二進制轉化的方法

    go實現整型的二進制轉化的方法

    這篇文章主要介紹了go實現整型的二進制轉化的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07
  • Golang實現http文件上傳小功能的案例

    Golang實現http文件上傳小功能的案例

    這篇文章主要介紹了Golang實現http文件上傳小功能的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Golang 中的直接依賴和間接依賴管理詳解

    Golang 中的直接依賴和間接依賴管理詳解

    在 Golang 中,依賴管理是非常重要的,直接依賴是指項目代碼中明確引用的其他包的依賴,而間接依賴是指直接依賴所引用的其他包的依賴,這篇文章主要介紹了Golang 中的直接依賴和間接依賴管理,需要的朋友可以參考下
    2023-11-11
  • Go defer與time.sleep的使用與區(qū)別

    Go defer與time.sleep的使用與區(qū)別

    本文主要介紹了Go defer與time.sleep的使用與區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-04-04
  • Golang?手寫一個簡單的并發(fā)任務?manager

    Golang?手寫一個簡單的并發(fā)任務?manager

    這篇文章主要介紹了Golang?手寫一個簡單的并發(fā)任務?manager,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • 重學Go語言之錯誤處理與異常機制詳解

    重學Go語言之錯誤處理與異常機制詳解

    Go語言的開發(fā)者顯然覺得?try-catch被濫用了,因此?Go不支持使用?try-catch語句捕獲異常處理,那么,Go語言是如何定義和處理程序的異常呢,下面我們就來看看吧
    2023-08-08
  • Golang使用Token來驗證

    Golang使用Token來驗證

    token指的是一種用于驗證用戶身份或授權訪問的憑證,本文主要介紹了Golang使用Token來驗證,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • go語言編程學習實現圖的廣度與深度優(yōu)先搜索

    go語言編程學習實現圖的廣度與深度優(yōu)先搜索

    這篇文章主要為大家介紹了go語言編程學習實現圖的廣度與深度優(yōu)先搜索示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-10-10
  • 一文讀懂go中semaphore(信號量)源碼

    一文讀懂go中semaphore(信號量)源碼

    這篇文章主要介紹了一文讀懂go中semaphore(信號量)源碼的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Go語言使用sort包對任意類型元素的集合進行排序的方法

    Go語言使用sort包對任意類型元素的集合進行排序的方法

    這篇文章主要介紹了Go語言使用sort包對任意類型元素的集合進行排序的方法,實例分析了sort排序所涉及的方法與相關的使用技巧,需要的朋友可以參考下
    2015-02-02

最新評論

长子县| 东丽区| 于田县| 佛山市| 双峰县| 延庆县| 无为县| 隆回县| 武胜县| 汉沽区| 休宁县| 东乡县| 广饶县| 宜城市| 乌兰察布市| 寿光市| 西青区| 章丘市| 泽普县| 鸡东县| 娄烦县| 塔城市| 绩溪县| 清原| 成都市| 惠安县| 水富县| 台州市| 离岛区| 闸北区| 安吉县| 咸阳市| 扎兰屯市| 灵山县| 大港区| 安多县| 和静县| 吴江市| 蒲江县| 集贤县| 平安县|