午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > Golang 數據庫操作(sqlx)和不定字段結果查詢

Golang 數據庫操作(sqlx)和不定字段結果查詢

熱門標簽:電腦外呼系統輻射大嗎 揚州電銷外呼系統軟件 400手機電話免費辦理 百度地圖標注位置網站 如何利用高德地圖標注家 智能語音電銷的機器人 上海企業外呼系統排名 開通400電話申請流程 武漢百應人工智能電銷機器人

一、Mysql數據庫

為什么要使用數據庫

  • 一開始人手動記錄數據,不能長期保存,追溯;
  • 然后創建了文件系統,能夠長期保存,但是查詢追溯更新麻煩,數據可以發生冗余重復;
  • 實現了數據庫的方式,能夠長期保存,方便查詢,追溯,更新等等一系列操作,能設置一些約束進行數據的自我管控等等。

簡單介紹下Mysql數據庫的特點:關系型數據庫、體積小、速度快、成本低、開源代碼、中小網站適用、非常適合初學者學習

二、Golang操作Mysql

1. 現有test數據庫表格user

2. 連接mysql數據庫

2.1. 使用到的第三方庫

github.com/go-sql-driver/mysql(驅動)

github.com/jmoiron/sqlx(對驅動的操作封裝)

2.2. 連接

package main

import (
   "fmt"
   _ "github.com/go-sql-driver/mysql"
   "github.com/jmoiron/sqlx"
)

func main() {
   db, err := sqlx.Open("mysql", "username:password@(127.0.0.1:3306)/test?charset=utf8mb4")
   if err != nil {
      fmt.Println("open mysql failed,", err)
   }
   db.SetMaxIdleConns(5) //設置最大的空閑數
   db.SetMaxOpenConns(15) //設置最大的連接數
}

  //db, err := sqlx.Open("數據庫類型", "用戶名:密碼@tcp(地址:端口)/數據庫名")

3. SELECT數據庫查詢操作

package main

import (
   "fmt"
   _ "github.com/go-sql-driver/mysql"
   "github.com/jmoiron/sqlx"
)

var db *sqlx.DB

func initDB() {
   var err error
   db, err = sqlx.Open("mysql", "username:password@(127.0.0.1:3306)/test?charset=utf8mb4parseTime=trueloc=Local")
   if err != nil {
      fmt.Println("open mysql failed,", err)
   }
   db.SetMaxIdleConns(5)
   db.SetMaxOpenConns(15)
}

type User struct {
   Id   int64  `db:"id"`
   Name string `db:"name"`
   Age  int64  `db:"age"`
   Sex  string `db:"sex"`
}

func main() {
   initDB()
   defer db.Close()

   var user []User
   sqlStr := "SELECT * FROM user"
   err := db.Select(user, sqlStr)
   if err != nil {
      fmt.Println(err)
   }
   fmt.Println(user)
}

得到結果->

[{1 張三 20 男} {2 李四 21 女} {3 王五 25 男}]

4. Insert數據庫插入操作

package main

import (
   "fmt"
   _ "github.com/go-sql-driver/mysql"
   "github.com/jmoiron/sqlx"
)

var db *sqlx.DB

func initDB() {
   var err error
   db, err = sqlx.Open("mysql", "superxon:superxon@(172.20.3.12:3306)/test?charset=utf8mb4")
   if err != nil {
      fmt.Println("open mysql failed,", err)
   }
   db.SetMaxIdleConns(5)
   db.SetMaxOpenConns(15)
}

type User struct {
   Id   int64  `db:"id"`
   Name string `db:"name"`
   Age  int64  `db:"age"`
   Sex  string `db:"sex"`
}

func main() {
   initDB()
   defer db.Close()

   var user = User{
      Name: "小六",
      Age: 18,
      Sex: "女",
   }

   sqlStr := "INSERT INTO user(name, age, sex) VALUES (?,?,?)"
   res, err := db.Exec(sqlStr, user.Name, user.Age, user.Sex)
   if err != nil {
      fmt.Println(err)
   }
   c, _ := res.RowsAffected()
   fmt.Println("有多少行被創建", c)
}

得到結果->

有多少行被創建 1

5. Update數據庫更新操作

package main

import (
   "fmt"
   _ "github.com/go-sql-driver/mysql"
   "github.com/jmoiron/sqlx"
)

var db *sqlx.DB

func initDB() {
   var err error
   db, err = sqlx.Open("mysql", "superxon:superxon@(172.20.3.12:3306)/test?charset=utf8mb4")
   if err != nil {
      fmt.Println("open mysql failed,", err)
   }
   db.SetMaxIdleConns(5)
   db.SetMaxOpenConns(15)
}

type User struct {
   Id   int64  `db:"id"`
   Name string `db:"name"`
   Age  int64  `db:"age"`
   Sex  string `db:"sex"`
}

func main() {
   initDB()
   defer db.Close()

   var user = User{
      Id: 4,
      Age: 20,
   }

   sqlStr := "UPDATE user SET age=? WHERE id=?"
   res, err := db.Exec(sqlStr, user.Age, user.Id)
   if err != nil {
      fmt.Println(err)
   }
   c, _ := res.RowsAffected()
   fmt.Println("有多少行被更改", c)
}

得到結果->

有多少行被更改 1

6. DELETE數據庫刪除操作

package main

import (
   "fmt"
   _ "github.com/go-sql-driver/mysql"
   "github.com/jmoiron/sqlx"
)

var db *sqlx.DB

func initDB() {
   var err error
   db, err = sqlx.Open("mysql", "superxon:superxon@(172.20.3.12:3306)/test?charset=utf8mb4")
   if err != nil {
      fmt.Println("open mysql failed,", err)
   }
   db.SetMaxIdleConns(5)
   db.SetMaxOpenConns(15)
}

type User struct {
   Id   int64  `db:"id"`
   Name string `db:"name"`
   Age  int64  `db:"age"`
   Sex  string `db:"sex"`
}

func main() {
   initDB()
   defer db.Close()

   deleteId := 3

   sqlStr := "DELETE FROM user WHERE id=?"
   res, err := db.Exec(sqlStr, deleteId)
   if err != nil {
      fmt.Println(err)
   }
   c, _ := res.RowsAffected()
   fmt.Println("有多少行被刪除", c)
}

得到結果->

有多少行被刪除 1

三、生成動態字段數據庫查詢結果

在項目中經常會遇到一個問題:在同一個函數中,查詢不同的表格,生成不同的結果,每次都要重新構建結構體

思路:把結果弄成[]map[string]string類型,這樣就能把查詢得到的數據都填充進去。

使用的是內置的庫

database/sql

package main

import (
   "database/sql"
   "fmt"
   _ "github.com/go-sql-driver/mysql"
)

var db *sql.DB

func initDB() {
   var err error
   db, err = sql.Open("mysql", "superxon:superxon@(172.20.3.12:3306)/test?charset=utf8mb4")
   if err != nil {
      fmt.Println("open mysql failed,", err)
   }
   db.SetMaxIdleConns(5)
   db.SetMaxOpenConns(15)
}

func main() {
   initDB()
   defer db.Close()

   sqlStr := "SELECT * FROM user" //可以換成其它的查詢語句,可以得到相應的查詢結果,不用每次都去構建存放的結構體
   rows, err := db.Query(sqlStr)
   if err != nil {
      fmt.Println(err)
   }
   defer rows.Close()

   //列出所有查詢結果的字段名
   cols, _ := rows.Columns()

   //values是每個列的值,這里獲取到byte里
   values := make([][]byte, len(cols))
   //query.Scan的參數,因為每次查詢出來的列是不定長的,用len(cols)定住當次查詢的長度
   scans := make([]interface{}, len(cols))
   //讓每一行數據都填充到[][]byte里面
   for i := range values {
      scans[i] = values[i]
   }
   res := make([]map[string]string, 0)
   for rows.Next() {
      _ = rows.Scan(scans...)
      row := make(map[string]string)
      for k, v := range values { //每行數據是放在values里面,現在把它挪到row里
         key := cols[k]
         row[key] = string(v)
      }
      res = append(res, row)
   }
   fmt.Println(res)
}

得到結果->

[map[age:20 id:1 name:張三 sex:男] map[age:21 id:2 name:李四 sex:女] map[age:20 id:4 name:小六 sex:女]]

到此這篇關于Golang 數據庫操作(sqlx)和不定字段結果查詢的文章就介紹到這了,更多相關Golang 數據庫操作和不定字段結果查詢內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

您可能感興趣的文章:
  • Golang操作MySql數據庫的完整步驟記錄
  • 利用golang驅動操作MongoDB數據庫的步驟
  • golang常用庫之操作數據庫的orm框架-gorm基本使用詳解
  • 在golang中操作mysql數據庫的實現代碼
  • Golang對MongoDB數據庫的操作簡單封裝教程
  • golang實現mysql數據庫備份的操作方法

標簽:張掖 延邊 宜賓 江西 武漢 嘉峪關 黑龍江 新余

巨人網絡通訊聲明:本文標題《Golang 數據庫操作(sqlx)和不定字段結果查詢》,本文關鍵詞  Golang,數據庫,操作,sqlx,和,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Golang 數據庫操作(sqlx)和不定字段結果查詢》相關的同類信息!
  • 本頁收集關于Golang 數據庫操作(sqlx)和不定字段結果查詢的相關信息資訊供網民參考!
  • 推薦文章
    91免费看视频| 欧美探花视频资源| 中文在线资源观看网站视频免费不卡| 成人一区二区视频| 国产一区中文字幕| 蜜乳av另类精品一区二区| www黄色网址| 在线观看国产黄| 日韩熟女一区二区| 97久久久久久久| 久久久久久久九九九九| 欧美日韩在线视频免费| 欧美黄色免费看| 毛片a片免费观看| 欧美又粗又大又长| 国产精品二区一区二区aⅴ| 欧美成人一区二区三区高清| 九九久久免费视频| www.youjizz.com亚洲| 国产 日韩 欧美 成人| 欧美成人aaaaⅴ片在线看| 男人天堂中文字幕| 久草视频一区二区| 伊人成人在线观看| 国产伦子伦对白视频| 中文字幕久久久久| 国产三级在线观看视频| 亚洲AV无码一区二区三区性| 天堂网在线中文| 日韩国产在线观看| 麻豆91精品91久久久的内涵| 黄页网站大全一区二区| 国产精品亚洲一区二区三区在线| 丁香五精品蜜臀久久久久99网站| 99国产精品国产精品久久| 久久久综合激的五月天| 国产精品国产三级国产有无不卡| 亚洲乱码中文字幕| 天天色综合天天| 在线观看视频欧美| 日韩一区二区三区免费看| 欧美精品一区男女天堂| 亚洲人成电影网站| 插插插亚洲综合网| 欧美怡红院视频一区二区三区| 国产精品久久久久一区二区| 97超碰人人看人人| 日本中文不卡| 国产在线视频在线| 国产精品无码av无码| 波多野结衣在线免费观看| 亚洲av无码一区二区三区网址| 一级在线观看视频| 国产午夜精品无码一区二区| 黄色片视频免费| 性网爆门事件集合av| 男女性色大片免费观看一区二区 | 这里只有精品在线观看视频 | 国产日韩精品一区| 亚洲一二三四在线| 欧美日韩精品一区二区三区四区| 精品精品国产高清a毛片牛牛 | 国产精品久久久久久久久久久久久久| 99在线高清视频在线播放| 任我爽在线视频精品一| 欧美乱大交xxxxx潮喷l头像| а 天堂 在线| 91成人精品一区二区| 亚洲免费激情视频| 国产99久久九九精品无码免费| 日本欧美在线观看| 久久综合成人精品亚洲另类欧美| 亚洲精品欧美综合四区| 欧美日韩久久一区| 一区二区三区美女xx视频| 91国产精品视频在线| 99电影网电视剧在线观看| 在线观看日韩羞羞视频| 国产自偷自偷免费一区| 在线免费观看成年人视频| 精品无码久久久久| 精品国产伦一区二区三| 国产一区二区在线看| 国产精品免费aⅴ片在线观看| 色哟哟一区二区在线观看| 精品国产欧美一区二区| 久久成年人视频| 成人久久一区二区| 一区二区三区精品国产| 91插插插插插插插插| 青娱乐国产视频| 高潮毛片又色又爽免费| 日本aⅴ亚洲精品中文乱码| 久久亚洲春色中文字幕久久久| 香蕉成人伊视频在线观看| 精品久久久久久综合日本欧美| 色悠悠久久久久| 欧洲亚洲免费视频| 欧美日韩大片一区二区三区| 黄色片视频在线播放| ass精品国模裸体欣赏pics| 黄色大片网站在线观看| 亚洲三级黄色片| 久久久久久亚洲综合| 日韩欧美在线中文字幕| 亚洲网站在线观看| 国产狼人综合免费视频| 一区二区三区欧美成人| 中文字幕在线视频一区二区| 久久免费视频99| 香蕉久久国产av一区二区| 久久久国产精品不卡| 欧美日韩视频专区在线播放| 久久夜色精品国产| 亚洲综合中文字幕在线| 免费拍拍拍网站| 免费在线观看成年人视频| 精品久久久久久久久久久久久久久久久久| 欧美aaaaa成人免费观看视频| 最好看的中文字幕久久| 精品日韩一区二区| 欧美亚洲另类视频| 先锋在线资源一区二区三区| 色啦啦av综合| 国产一级淫片a| 毛片一区二区三区| 一区二区激情视频| 亚洲欧美在线x视频| 国产日韩av高清| 51xx午夜影福利| 黄色工厂在线观看| 91在线观看喷潮| 91婷婷韩国欧美一区二区| 91国产成人在线| 欧美美女15p| 国产一区二区免费在线观看| 日本在线观看免费视频| 欧美一区二区三区爽爽爽| 亚洲av片在线观看| 亚洲欧美成人一区二区三区| 亚洲国产精品成人va在线观看| 国产精品久久久久久久久久99 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 狠狠色2019综合网| 亚洲成人免费视频| 中文字幕在线观看亚洲| 国产欧美日韩在线播放| 日韩高清第一页| 欧美一区二区三区四| 国产精品一级在线| 欧美在线不卡视频| 91国内精品久久| 国产四区在线观看| 91网站免费视频| 亚洲经典一区二区| **性色生活片久久毛片| 亚洲精品少妇网址| 国产精品欧美久久| 6080国产精品| 亚洲视频在线免费播放| 久久久久久久综合| 亚洲国产精品久久久| 国产精品欧美日韩| 亚洲精品无码久久久久久| 激情综合网五月婷婷| 国产激情视频一区二区三区欧美| 在线观看中文字幕不卡| 欧美自拍视频在线| 国产精品又粗又长| 麻豆疯狂做受xxxx高潮视频| 国产精品自产自拍| 8v天堂国产在线一区二区| 国产成人在线播放| 成人小视频在线看| 日本中文字幕第一页| 99re视频这里只有精品| 精品成人免费观看| 成人av免费电影| 手机在线观看日韩av| 国产一区二区在线不卡| 国产精品家庭影院| 久久久国产精品视频| 亚洲精品免费在线看| 91资源在线播放| 免费成人在线影院| 欧美三区在线视频| 国产日本欧美一区二区三区在线 | thepron国产精品| 精品国产露脸精彩对白| 国产高清一区视频| 成熟妇人a片免费看网站| 成人久久久精品国产乱码一区二区 | 欧美精品制服第一页| 男人的天堂视频在线| 放荡的美妇在线播放| 国产黄人亚洲片| 精品国产第一区二区三区观看体验 | 成人免费视频视频在线观看免费| 欧美va亚洲va在线观看蝴蝶网| 国产成人亚洲欧美| 中国一级特黄录像播放| 无码国产伦一区二区三区视频| 欧美视频免费在线观看| 国产成人jvid在线播放| 日韩av片在线看| 久久人人爽人人爽人人片av免费| 国产精品久99| 欧美黄色片在线观看| 18禁免费观看网站| 中文字幕日韩免费| 亚洲美女免费在线| 91成人性视频| 五月天亚洲视频| 国产视频www| 福利视频第一区| 国产精品mp4| 久久精品无码一区二区三区毛片| 韩国av免费在线观看| 色999日韩国产欧美一区二区| 国产精品久久在线观看| 在线观看你懂的视频| 亚洲欧美日本在线观看| 欧美一区二区三区影视| 国产九色精品| 特级西西人体高清大胆| 大陆成人av片| 中文字幕欧美国内| 日韩国产小视频| 中文字幕在线天堂| 夜夜嗨av一区二区三区| 国产高清在线不卡| 第一页在线视频| 看片网站欧美日韩| 亚洲精品suv精品一区二区| 亚洲国产婷婷香蕉久久久久久99| 国产亚洲精品码| 国产精品国产三级国产普通话三级 | 91精品国产自产在线老师啪| 亚洲精品无码一区二区| 精彩视频一区二区三区| 亚洲精品成a人在线观看| 日韩视频在线免费播放| 国产精品21p| 亚洲.国产.中文慕字在线| 国产区亚洲区欧美区| 法国伦理少妇愉情| heyzo一本久久综合| 久久亚洲精品一区二区| 日韩福利视频在线| 五月天婷婷在线观看| 精品国产欧美一区二区| 免费看污污视频| 亚洲系列在线观看| 欧美亚洲综合另类| 久久青青草原一区二区| 69精品久久久| 亚洲成人在线免费| 亚洲自拍偷拍色图| 欧美风情第一页| 亚洲欧洲性图库| 国产精品视频自拍| 欧美 日韩 成人| 国产三级一区二区| 国产成人精品在线播放| 免费无码一区二区三区| 97成人超碰视| 亚洲 日韩 国产第一| 极品白嫩的小少妇| 丁香婷婷综合网| 午夜精品久久久久久久99热 | 日韩福利片在线观看| 亚洲综合免费观看高清完整版在线 | 日本精品在线视频| 泷泽萝拉在线播放| 久久久精品人体av艺术| 国产成人欧美在线观看| 蜜桃无码一区二区三区| 国产视频视频一区| 国产精品国产三级国产aⅴ9色| a级大片在线观看| 国产免费成人在线视频| 国产精品欧美日韩| 五月天av网站| 亚洲成年人影院| 九色视频成人porny| 国产精品白浆一区二小说| 舔着乳尖日韩一区| 欧美日韩亚洲在线| 最近中文字幕在线视频| 在线电影院国产精品| 国产三级中文字幕| 性做久久久久久久| 亚洲欧美激情精品一区二区| 国产精品天天av精麻传媒| 久久国内精品视频| 欧美片一区二区三区| 无码任你躁久久久久久老妇| 久久久久免费观看| 国产一区二区丝袜| 黄色一级视频在线观看| 欧美特黄级在线| 一区二区冒白浆视频| www.精品久久| 亚洲视频免费一区| 亚洲精品成人在线播放| 波多野结衣中文字幕一区二区三区| 欧美壮男野外gaytube| 91香蕉国产视频| 亚洲午夜激情网页| 日本一区二区三区视频在线观看| 91麻豆国产视频| 日韩国产激情在线| 久久久久xxxx| 久久久精品国产99久久精品芒果| 91香蕉亚洲精品| 日韩不卡视频在线| 91精品国产丝袜白色高跟鞋| 黄色国产一级视频| 精品一区二区三区欧美| 97国产精品免费视频| 老司机福利在线观看| 五月婷婷久久丁香| 中文字幕日韩精品一区二区| 三级在线观看网站| 久久久精品2019中文字幕神马| 国产精品一区二区在线免费观看| 国产农村妇女精品| 国产精品免费一区二区三区四区| 狠狠人妻久久久久久综合| 欧美刺激脚交jootjob| 激情婷婷综合网| 不卡的看片网站| 国产精品白嫩美女在线观看| 久久精品性爱视频| 91精品国产综合久久精品性色| 免费在线观看毛片网站| av午夜精品一区二区三区| 92国产精品久久久久首页| 中文字幕日韩免费| 亚洲另类图片色| 秘密基地免费观看完整版中文| 亚洲人成网站影音先锋播放| 日韩欧美亚洲日产国| 网站黄在线观看| 欧美激情视频网| 免费在线黄色网| 91精品国产免费久久综合| 我看黄色一级片| 欧美韩国日本不卡| 麻豆亚洲一区| 天天操天天射天天舔| 久久久久久久av| 久久久精品人妻一区二区三区四| 在线播放日韩导航| 国产原创精品在线| 国产精品欧美经典| 日韩中文字幕一区二区| 久久三级视频| 欧美在线观看视频| 免费在线不卡视频| 亚洲精品电影网在线观看| 国产乱淫av片| 亚洲图片有声小说| 成人av在线不卡| 国产乱对白刺激视频不卡 | 天天操天天操天天操天天| 亚洲国产精品va在线| 秘密基地免费观看完整版中文| 亚洲成人免费电影| 亚洲中文字幕无码av永久| a美女胸又www黄视频久久| 国产精品亚洲综合| 黑人精品一区二区| 欧美一区在线直播| 嫩草影院一区二区三区| 色99之美女主播在线视频| 老司机精品免费视频| 欧美精选一区二区| 无码人妻一区二区三区在线视频| 亚洲自拍偷拍网站| 成人在线观看你懂的| www激情久久| 色一情一区二区三区四区| 激情综合网天天干| 69堂成人精品视频免费| 亚洲经典一区二区三区| 青草青草久热精品视频在线观看| 色老头在线视频| 欧美成人免费大片| 日韩黄色三级视频| 国产一区二区免费| 99自拍视频在线| 亚洲精品v天堂中文字幕| japanese中文字幕| 91精品国产综合久久久久久| 免费在线观看日韩av| 色综合一区二区| 欧美日韩一区二区三区69堂| 一区二区高清免费观看影视大全| 91免费黄视频| 国产精品久久久久影院色老大| 玖玖精品在线视频| 久久亚洲捆绑美女| 日韩人妻精品一区二区三区| 99久久精品一区| 亚洲一区尤物| 2023国产精品| 中文字幕精品在线播放| 久久综合久久综合亚洲| 男女h黄动漫啪啪无遮挡软件|