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

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

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

【提問】

如何使用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、安裝對應(yīng)數(shù)據(jù)庫的驅(qū)動

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

//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、編寫「數(shù)據(jù)庫連接」代碼

這里以連接mysql為例,在工程中創(chuàng)建用于數(shù)據(jù)庫連接的go文件,其中dsn中內(nèi)容需要根據(jù)自己數(shù)據(jù)庫的信息進(jìn)行替換,如下:

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("數(shù)據(jù)庫連接失?。?v\n", err)
	} else {
		fmt.Printf("數(shù)據(jù)庫連接成功\n")
		DB = db
	}
	return err
}

同時在main.go中增加對其的調(diào)用,在服務(wù)啟動時就進(jìn)行數(shù)據(jù)庫連接:

package main

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

func main() {

	db.InitGormDB()

}

啟動服務(wù)后,可以看到連接成功的日志:

5、編寫「數(shù)據(jù)Model」代碼

數(shù)據(jù)庫連接后,我們就對這個數(shù)據(jù)庫進(jìn)行一些表映射和簡單查詢操作。
首先,看一下我們需要操作的數(shù)據(jù)庫表:

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 '邏輯刪除標(biāo)識',
  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應(yīng)與數(shù)據(jù)表一一對應(yīng),gorm會進(jìn)行自動轉(zhuǎn)換映射。

6、編寫「數(shù)據(jù)查詢」代碼

在工程中,新建文件:configService.go,用于操作數(shù)據(jù)庫和邏輯處理,如下:
其中「.Debug()」是為了在日志中打印Gorm真實拿去數(shù)據(jù)庫執(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中增加對其的調(diào)用:

package main

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

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

調(diào)試啟動后,我們可以看一下變量的結(jié)果,數(shù)據(jù)已經(jīng)被查詢出來了:

到此這篇關(guān)于搭建Go語言的ORM框架Gorm的具體步驟(從Java到go)的文章就介紹到這了,更多相關(guān)go orm框架內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Kotlin編程基礎(chǔ)語法編碼規(guī)范

    Kotlin編程基礎(chǔ)語法編碼規(guī)范

    這篇文章主要為大家介紹了Kotlin編程條件控制示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Go官方工具鏈用法詳解

    Go官方工具鏈用法詳解

    Go官方工具鏈工具要求所有的Go源代碼文件必須以.go后綴結(jié)尾。這里,我們假設(shè)一個最簡單的Go程序放在hello.go的文件中,下面通過示例代碼給大家介紹Go官方工具鏈用法簡介,需要的朋友可以參考下
    2021-10-10
  • 深入理解Go設(shè)計模式之代理模式

    深入理解Go設(shè)計模式之代理模式

    代理模式是一種結(jié)構(gòu)型設(shè)計模式,?其中代理控制著對于原對象的訪問,?并允許在將請求提交給原對象的前后進(jìn)行一些處理,從而增強原對象的邏輯處理,這篇文章主要來學(xué)習(xí)一下代理模式的構(gòu)成和用法,需要的朋友可以參考下
    2023-05-05
  • 淺談Golang 嵌套 interface 的賦值問題

    淺談Golang 嵌套 interface 的賦值問題

    這篇文章主要介紹了淺談Golang 嵌套 interface 的賦值問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • GoLang實現(xiàn)日志收集器流程講解

    GoLang實現(xiàn)日志收集器流程講解

    這篇文章主要介紹了GoLang實現(xiàn)日志收集器流程,看日志是開發(fā)者平時排查BUG所必須的掌握的技能,但是日志冗雜,所以寫個小工具來收集這些日志幫助我們排查BUG,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05
  • 簡介Go語言中的select語句的用法

    簡介Go語言中的select語句的用法

    這篇文章主要介紹了簡介Go語言中的select語句的用法,是golang入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10
  • golang sql連接池的實現(xiàn)方法詳解

    golang sql連接池的實現(xiàn)方法詳解

    database/sql是golang的標(biāo)準(zhǔn)庫之一,它提供了一系列接口方法,用于訪問關(guān)系數(shù)據(jù)庫。下面這篇文章主要給大家介紹了關(guān)于golang sql連接池用法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧
    2018-09-09
  • Go語言數(shù)據(jù)結(jié)構(gòu)之插入排序示例詳解

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

    這篇文章主要為大家介紹了Go語言數(shù)據(jù)結(jié)構(gòu)之插入排序示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Go?gRPC服務(wù)雙向流式RPC教程

    Go?gRPC服務(wù)雙向流式RPC教程

    這篇文章主要為大家介紹了Go?gRPC服務(wù)雙向流式RPC教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • golang的串行處理和并行處理區(qū)別

    golang的串行處理和并行處理區(qū)別

    golang對比其它語言最大的優(yōu)勢就是并行計算(一個go就能實現(xiàn)并發(fā)),工作中經(jīng)常遇到并發(fā)的場景, 本文主要介紹了golang的串行處理和并行處理,感興趣的可以了解一下
    2021-07-07

最新評論