<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
如何使用Goland軟體,搭建一個ORM框架GORM?
具體步驟如下:
在任意目錄執行如下命令:
go version
若有如下返回,則安裝成功;如果報異常,則重新安裝golang
go version go1.19.1 darwin/arm64
在任意目錄執行如下命令安裝grom:
go get -u gorm.io/gorm
根據你的資料庫,在任意目錄執行如下命令安裝驅動:
//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
這裡以連線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() }
啟動服務後,可以看到連線成功的紀錄檔:
資料庫連線後,我們就對這個資料庫進行一些表對映和簡單查詢操作。
首先,看一下我們需要操作的資料庫表:
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會進行自動轉換對映。
在工程中,新建檔案: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!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45