www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 智能應(yīng)用
[導(dǎo)讀]關(guān)于gorm框架的簡單運(yùn)用

gorm支持多種數(shù)據(jù)庫-支持MySQL、PostgreSQL,SQLite等
易于集成
  1. 安裝GORM庫 go get -u gorm.io/gorm
  2. MySQL驅(qū)動(dòng) go get -u gorm.io/driver/mysql
  3. 連接數(shù)據(jù)庫 dsn := "root:root@tcp(127.0.0.1:3306)/goadmin?charset=utf8mb4&parseTime=True&loc=Local"http://goadmin為數(shù)據(jù)庫名
dsn := "user:password@tcp(host:port)/dbname?charset=(字符集)"


  1. 定義模型以及基本操作:模型 通過 struct 定義模型 映射到數(shù)據(jù)庫中的表 字段映射到列
  2. 自定義表名和列名

package main

 

import(

    "gorm.io/driver/mysql"

    "gorm.io/gorm"

)

 

//自定義列名

type User struct{

    ID uint `gorm:"primaryKey"`//uint系列/ int系列/int32

    ServerIP string `gorm:"column:server_ip"`//映射到不同字段名--當(dāng)前字段名與表的列名不一樣時(shí)

    ServerPort string `gorm:"column:server_port"`

}

//自定義表名

func (User)TableName() string{

    return "user0"

}

func main(){

    //建立數(shù)據(jù)庫的連接

    dsn := "ims:123456@tcp(192.168.0.26:3306)/ibcf?charset=utf8mb4&parseTime=True&loc=Local"

    db,err := gorm.Open(mysql.Open(dsn),&gorm.Config{})//第二個(gè)參數(shù)為配置文件

    if err != nil{

        log.Fatal("數(shù)據(jù)庫連接失敗:",err)   

    }

    fmt.Println("數(shù)據(jù)庫連接成功!")

    //創(chuàng)建一個(gè)User類型-user

    user := User{

        ID:2,

        ServerIP:"192.168.0.26",

        ServerPort:"8080"   

    }

    db.Create(&user)//相當(dāng)于INSERT

    //讀取

    db.First(&user,1)//將讀取到數(shù)據(jù)存到user中

    //查詢

     db.Where("ServerIP = ?","192.168.0.26").First(&user,1)

    //db.Where("ServerIP = ? AND ServerPort = ?").First(&user,1)

    fmt.Println(db)

    //修改

    db.Model(&user).Updates(User{ServerIP:"192.168.0.2",ServerPort:"0000"})

    db.Model(&user).Updates("ServerIP","100.0.0.0")//只修改一個(gè)字段

    //按條件修改

    db.Model(&User{}).Where("ServerPort = ?","9012").Update("ServerPort",db.Exec("ServerPort = ?","9013"))

    //刪除

    db.Delete(&user,1)//按主鍵刪除

    db.Where("ServerPort = ?","0000").Delete(&User{})//根據(jù)條件刪除

}

 


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

來源:https://juejin.cn/post/6860252224930070536|?背景日志是?mysql?數(shù)據(jù)庫的重要組成部分,記錄著數(shù)據(jù)庫運(yùn)行期間各種狀態(tài)信息。mysql日志主要包括錯(cuò)誤日志、查詢?nèi)罩?、慢?..

關(guān)鍵字: mysql

mysql的一行記錄,最終肯定是存儲(chǔ)在磁盤上,也就是肉眼可見的文件上,今天我們的目標(biāo)很簡單,就是看看它到底是怎么存的。當(dāng)然還有一個(gè)更重要的目標(biāo),就是以這個(gè)為引子,帶大家完全通過一手資料,來揭秘這個(gè)問題的答案。所以大家閱讀...

關(guān)鍵字: mysql

跟著官方文檔 源碼 源文件三件套自己探索

關(guān)鍵字: mysql 存儲(chǔ)

什么Mysql的事務(wù)?事務(wù)的四大特性?事務(wù)帶來的什么問題?你詳細(xì)了解過MVCC嗎?它是怎么工作的?

關(guān)鍵字: mysql 嵌入式

想進(jìn)大廠,mysql不會(huì)那可不行,來接受mysql面試挑戰(zhàn)吧,看看你能堅(jiān)持到哪里?

關(guān)鍵字: mysql 嵌入式

最近,在開發(fā)一個(gè)分庫分表中間件,由于功能需求,需要分析MySQL協(xié)議,發(fā)現(xiàn)網(wǎng)上對于MySQL協(xié)議分析的文章大部分都過時(shí)了,原因是分析的MySQL版本太低了。怎么辦?于是乎,我便硬著頭皮開始啃MySQL源碼,經(jīng)過兩個(gè)多月的...

關(guān)鍵字: mysql 嵌入式

想進(jìn)大廠,Mysql不會(huì)那可不行,來接受Mysql面試挑戰(zhàn)吧,看看你能堅(jiān)持到哪里?

關(guān)鍵字: mysql 嵌入式

Explain被稱為執(zhí)行計(jì)劃,在語句之前增加explain關(guān)鍵字,MySQL會(huì)在查詢上設(shè)置一個(gè)標(biāo)記,模擬MySQL優(yōu)化器來執(zhí)行SQL語句,執(zhí)行查詢時(shí),會(huì)返回執(zhí)行計(jì)劃的信息,并不執(zhí)行這條SQL。

關(guān)鍵字: mysql 嵌入式

什么是事務(wù)?事務(wù)是應(yīng)用程序中一系列嚴(yán)密的操作,所有操作必須成功完成,否則在每個(gè)操作中所作的所有更改都會(huì)被撤消。也就是事務(wù)具有原子性,一個(gè)事務(wù)中的一系列的操作要么全部成功,要么一個(gè)都不做。

關(guān)鍵字: mysql 嵌入式

此文不會(huì)事無巨細(xì)的從select的用法開始講解mysql,主要針對的是開發(fā)人員需要知道的一些MySQL的知識(shí)點(diǎn),主要包括索引、事務(wù)、優(yōu)化等方面,以在面試中高頻的問句形式給出答案。

關(guān)鍵字: mysql 嵌入式
關(guān)閉