精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Go 使用 xorm 操作 MySQL

數據庫 MySQL
本文介紹了 golang orm 庫 xorm 的使用和項目結構。

本文介紹了 golang orm 庫 xorm 的使用和項目結構。

xorm 

  1. 官方介紹:xorm 是一個簡單而強大的 Go 語言 ORM 庫。  
  2. 通過它可以使數據庫操作非常簡便。xorm 的目標并不是讓你完全不去學習 SQL,  
  3. 我們認為 SQL 并不會為 ORM 所替代,但是 ORM 將可以解決絕大部分的簡單 SQL 需求。  
  4. xorm 支持兩種風格的混用。 

xorm 還提供了工具,通過 reverse 命令根據數據庫的表結構生成對應的 struct,省去了人工組織代碼的工作,十分方便。官方地址:https://xorm.io/

安裝

瀏覽 xorm 的 github 地址,我們要下載 2 個包,https://github.com/go-xorm

1、xorm 驅動包,我們使用 xorm 的核心包

2、cmd 工具包,用于使用 reverse 命令生成數據表對應的 struct

通過 go get 命令分別下載 2 個包go get github.com/go-xorm/xormgo get github.com/go-xorm/cmd/xorm下載完成后 github.com 文件夾下會出現 go-xorm 包

生成數據結構 struct

本地數據庫 test 有 2 張數據表,doctor_tb 和 user_tb, 數據結構如下:

我們現在就來生成這 2 張數據表的結構模型。

1、在任意項目下新建一個文件夾 xorm_models,文件名沒有規定,為了存放生成的代碼文件。

2、拷貝 cmd 工具包中的摸板目錄到 xorm_models 下,在文件目錄github.com\go-xorm\cmd\xorm\templates\goxorm下

config 是生成的配置信息,struct.go.tpl 是數據摸板,允許自定義,可以根據自己的項目需求,修改摸板。一般不需要修改。

3、打開 cmd 命令行窗口,進入 xorm_models 目錄下,執行 reverse 命令:xorm reverse [數據庫類型] [數據庫連接串] [模板目錄]

  1. xorm reverse mysql root:112233@tcp(127.0.0.1:3305)/test?charset=utf8 templates/goxorm 

4、數據結構代碼會自動生成在 xorm_models/models 目錄下。

我們能看到生成了和表名同名的 2 個數據結構文件 doctor_tb.go 和 user_tb.go 

  1. package models  
  2. import (  
  3.     "time"  
  4.  
  5. type DoctorTb struct {  
  6.     Id      int       `xorm:"not null pk autoincr INT(11)"`  
  7.     Name    string    `xorm:"default '' comment('姓名') VARCHAR(50)"`  
  8.     Age     int       `xorm:"default 0 comment('年齡') INT(11)"`  
  9.     Sex     int       `xorm:"default 0 comment('性別') INT(11)"`  
  10.     Addtime time.Time `xorm:"DATETIME"`  

使用 xorm

xorm 支持鏈式的寫法engine.Where("age > ?", 40).Or("name like ?", "林%").OrderBy("Id desc").Find(&docList2)也支持直接執行 sql 語句engine.SQL("select * from doctor_tb where age > ?", 40).Find(&docList4)

附上增刪改查事務的 demo 例子,代碼里都有注釋,很容易看懂。xorm 的封裝比較友好,只要熟悉 sql 語句,即便不看文檔,也能順利的使用各種關鍵字。 

  1. package main  
  2. import (  
  3.     "fmt"  
  4.     _ "github.com/go-sql-driver/mysql"  
  5.     "github.com/go-xorm/xorm"  
  6.     "goShare/xorm_models/models"  
  7.     "time"  
  8.  
  9. func main() {  
  10.     var engine *xorm.Engine  
  11.     //連接數據庫  
  12.     engine, err :xorm.NewEngine("mysql", "root:112233@tcp(127.0.0.1:3305)/test?charset=utf8")  
  13.     if err != nil {  
  14.         fmt.Println(err)  
  15.         return  
  16.     }  
  17.     //連接測試  
  18.     if err :engine.Ping(); err != nil {  
  19.         fmt.Println(err)  
  20.         return  
  21.     }  
  22.     defer engine.Close() //延遲關閉數據庫  
  23.     fmt.Println("數據庫鏈接成功")  
  24.     //查詢單條數據  
  25.     var doc models.DoctorTb  
  26.     b, _ :engine.Where("name = ?", "鐘南山").Get(&doc)  
  27.     if b {  
  28.         fmt.Println(doc)  
  29.     } else {  
  30.         fmt.Println("數據不存在")  
  31.     }  
  32.     //查詢單條數據方式 2 會根據結構體的  
  33.     doc2 :models.DoctorTb{Name: "鐘南山"}  
  34.     b, _ = engine.Get(&doc2)  
  35.     fmt.Println(doc2)  
  36.     //新增數據  
  37.     doc3 :models.DoctorTb{0, "王醫生", 48, 1, time.Now()}  
  38.     i3, _ :engine.InsertOne(doc3)  
  39.     fmt.Println("新增結果:", i3)  
  40.     //查詢列表  
  41.     docList :make([]models.DoctorTb, 0)  
  42.     engine.Where("age > ? or name like ?", 40, "林%").Find(&docList)  
  43.     fmt.Println("docList:", docList)  
  44.     //查詢列表方式 2  
  45.     docList2 :make([]models.DoctorTb, 0)  
  46.     engine.Where("age > ?", 40).Or("name like ?", "林%").OrderBy("Id desc").Find(&docList2)  
  47.     fmt.Println("docList2:", docList2)  
  48.     //查詢分頁  
  49.     docList3 :make([]models.DoctorTb, 0)  
  50.     page :0     //頁索引  
  51.     pageSize :2 //每頁數據  
  52.     limit :pageSize  
  53.     start :page * pageSize  
  54.     totalCount, err :engine.Where("age > ? or name like ?", 40, "林%").Limit(limit, start).FindAndCount(&docList3)  
  55.     fmt.Println("總記錄數:", totalCount, "docList3:", docList3)  
  56.     //直接用語句查詢  
  57.     docList4 :make([]models.DoctorTb, 0)  
  58.     engine.SQL("select * from doctor_tb where age > ?", 40).Find(&docList4)  
  59.     fmt.Println("docList4:", docList4)  
  60.     //刪除  
  61.     docDel :models.DoctorTb{Name: "王醫生"}  
  62.     iDel, _ :engine.Delete(&docDel)  
  63.     fmt.Println("刪除結果:", iDel)  
  64.     //刪除方式 2  
  65.     engine.Exec("delete from doctor_tb where Id = ?", 3)  
  66.     //更新數據  
  67.     doc5 :models.DoctorTb{Name: "鐘醫生"}  
  68.     //更新數據 ID 為 2 的記錄名字更改為“鐘醫生”  
  69.     iUpdate, _ :engine.Id(2).Update(&doc5)  
  70.     fmt.Println("更新結果:", iUpdate)  
  71.     //指定表名查詢。Table()  
  72.     user :models.UserTb{Id: 2}  
  73.     b, _ = engine.Table("user_tb").Get(&user)  
  74.     fmt.Println(user)  
  75.     //事務  
  76.     session :engine.NewSession()  
  77.     defer session.Close()  
  78.     err = session.Begin()  
  79.     _, err = session.Exec("delete from doctor_tb where Id = ?", 6)  
  80.     if err != nil {  
  81.         session.Rollback()  
  82.         return  
  83.     }  
  84.     _, err = session.Exec("delete from user_tb where Id = ?", 10)  
  85.     if err != nil {  
  86.         session.Rollback()  
  87.         return  
  88.     } 
  89.     err = session.Commit()  
  90.     if err != nil {  
  91.         return  
  92.     }  
  93.     fmt.Println("事務執行成功")  

總結

歸納下使用流程:

1、下載 xorm 包和 cmd 工具包

2、復制 cmd 工具包里的模板代碼文件夾至生成目錄底下

3、使用 reverse 生成數據結構代碼,省去苦力活

4、實例引擎xorm.NewEngine()

5、痛快的調用

demo 里提供了我們開發業務上常用的增,刪,改,查單條數據,查列表,查分頁,事務等內容。如果文章對你有用,請點個贊。 

 

責任編輯:龐桂玉 來源: 馬哥Linux運維
相關推薦

2023-07-03 00:44:26

Go語言MySQL

2020-07-02 16:20:36

MySQLCURD數據庫

2024-12-30 00:38:23

Go語言微服務

2021-01-23 12:47:19

MySQL數據庫Go語言

2024-01-07 19:54:51

2021-01-27 10:01:46

MySQL數據庫SQLX

2021-10-19 10:26:31

MySQL.MySQLJSON

2024-03-25 07:22:50

GolangMySQL數據庫

2009-06-04 15:59:53

Netbeans操作MMySQL數據庫

2022-05-16 10:58:12

Go 項目Makefilemake

2023-11-07 08:04:19

Go并發程序原子操作

2023-01-31 08:48:49

Go語言文件

2023-09-12 11:10:00

代碼優化Go

2021-12-15 10:54:12

Gogofmt命令Go源代碼

2025-05-19 08:20:00

GoLicense后端

2024-02-26 00:02:00

開發Go

2021-02-03 15:10:38

GoKubernetesLinux

2023-11-01 13:40:25

GolangGo

2015-08-14 09:21:09

gdb工具調試 Go

2010-05-28 14:42:00

MySQL使用備忘
點贊
收藏

51CTO技術棧公眾號

亚洲精品mv| 国产乱码一区二区| 香蕉久久精品| 欧美三级在线视频| 国产欧美自拍视频| 亚洲色图欧美视频| 蜜臂av日日欢夜夜爽一区| 久久亚洲成人精品| 亚洲一区二区三区四区五区六区| 国产经典一区| 亚洲一二三区视频在线观看| 久久精品一二三区| 97国产精品久久久| 国产亚洲精品久久久久婷婷瑜伽| 亚洲最新中文字幕| 国产sm在线观看| 久久99久久99精品免观看软件| 亚洲人成人一区二区在线观看| 狠狠色综合色区| 中文字幕一区二区在线视频| 亚洲调教视频在线观看| 最新日韩中文字幕| 亚洲成人av免费在线观看| 少妇高潮一区二区三区99| 亚洲一本大道在线| 黄色网址在线免费看| 四虎影视在线播放| 精品一区二区在线看| 97久久久免费福利网址| 欧美激情精品久久久久久免费| 久久99偷拍| 日韩欧美国产综合一区| 91女神在线观看| 亚洲成人看片| 天天操天天综合网| 日韩极品视频在线观看| 免费在线观看av片| 中文字幕av一区二区三区免费看| 九九九九精品九九九九| 亚洲国产日韩在线观看| 激情小说亚洲一区| 国产精品久久久久免费a∨| 午夜毛片在线观看| 黄色成人av网站| 久久久成人的性感天堂| 亚洲一级理论片| 国产精品欧美日韩一区| 日韩精品极品在线观看播放免费视频| 韩国一区二区三区四区| 国产精品毛片无码| 制服丝袜成人动漫| 福利片一区二区三区| 全球中文成人在线| 欧美色图12p| 992kp快乐看片永久免费网址| 在线免费av资源| 好吊成人免视频| 国产91在线视频观看| 在线中文字幕播放| 欧美日韩亚洲精品内裤| www.国产在线视频| www.综合网.com| 图片区小说区区亚洲影院| 男女猛烈激情xx00免费视频| 国产精品蜜芽在线观看| 黄网站色欧美视频| 无码人妻丰满熟妇区五十路百度| 自拍在线观看| 欧美综合亚洲图片综合区| 日韩免费高清在线| 欧美成人福利| 日韩一区二区电影| 在线免费看黄色片| 亚洲va久久久噜噜噜久久| 亚洲欧美国产一区二区三区| 欧美大波大乳巨大乳| 日韩免费特黄一二三区| 久久久精品国产一区二区| 欧美国产精品一二三| 极品中文字幕一区| 青草青草久热精品视频在线网站| 黄色污污网站在线观看| 久久av资源站| 国产精品国产精品国产专区蜜臀ah | 999精品网站| 日韩高清不卡| 日韩欧美三级在线| 亚欧洲乱码视频| 99久久99久久精品国产片果冰| 九九久久久久99精品| 99热国产在线观看| 久久er99精品| 国外成人在线视频网站| av网页在线| 亚洲一区二区三区中文字幕| 可以在线看的黄色网址| 亚洲日本中文| 日韩精品高清在线| 麻豆精品一区二区三区视频| 亚洲一卡久久| 99在线看视频| 成人亚洲性情网站www在线观看| 亚洲激情图片qvod| 成人免费视频久久| 51亚洲精品| 日韩在线小视频| 青青操免费在线视频| 老司机一区二区| 久久综合一区| 亚洲wwwww| 欧洲亚洲精品在线| 免费日本黄色网址| 亚洲色图国产| 国产精品国产福利国产秒拍| 欧美熟妇另类久久久久久不卡 | 依依综合在线| 日韩久久久精品| 永久免费观看片现看| 国产欧美91| 99se婷婷在线视频观看| jzzjzzjzz亚洲成熟少妇| 亚洲成人资源网| 少妇欧美激情一区二区三区| 欧洲杯什么时候开赛| 欧美一级电影在线| 成人免费一级视频| 亚洲欧美日韩国产综合在线| 午夜免费高清视频| 少妇久久久久| 91成品人片a无限观看| www.久久色| 成人免费视频在线观看| 黄色在线视频网| 蜜臀91精品国产高清在线观看| 欧美精品videossex性护士| 国产又粗又长视频| 中文字幕av不卡| 天堂中文视频在线| 国产日韩视频在线| 日韩美女在线观看| 久久伊伊香蕉| 91国产免费观看| 久久久视频6r| 三级欧美在线一区| 奇米影视首页 狠狠色丁香婷婷久久综合 | 国产又粗又长又黄| 国产精品国产三级国产aⅴ原创| 好男人www社区| 精品欧美久久| 国产精品入口免费视频一| 国产黄在线观看免费观看不卡| 欧美性猛交xxxx乱大交极品| 亚洲第一香蕉网| 欧美专区18| 日本a级片久久久| 99久久伊人| 日韩在线免费av| 国产又黄又猛又爽| 亚洲蜜臀av乱码久久精品| 色姑娘综合天天| 亚洲精品va| 粉嫩av免费一区二区三区| 青春草视频在线| 亚洲高清色综合| 精品免费囯产一区二区三区| 国产亚洲综合av| 五月激情婷婷在线| 中文精品久久| 好吊妞www.84com只有这里才有精品 | 国产富婆一级全黄大片| 亚洲一区电影777| 麻豆国产精品一区| 日本不卡一二三区黄网| 综合操久久久| 国产福利资源一区| 日本亚洲欧洲色| 日韩免费啪啪| 亚洲精品国产suv| 高潮无码精品色欲av午夜福利 | 国产性一乱一性一伧一色| 99精品视频在线播放观看| 污污视频网站免费观看| 国产精品x453.com| 国产91精品一区二区绿帽| 中文字幕在线视频网站| 日韩亚洲第一页| 色一情一乱一乱一区91av| 在线观看视频一区二区| 国产精品国产精品88| 97久久精品人人爽人人爽蜜臀| 精品久久久久久久无码 | 风间由美性色一区二区三区四区| 欧美中文在线视频| 超碰在线观看免费| 日韩精品中文字幕视频在线| 国产喷水福利在线视频| 精品国产精品自拍| 久久一级免费视频| heyzo一本久久综合| 亚洲高清免费在线观看| 日韩一级免费| 手机在线视频你懂的| 一区三区在线欧| 97人摸人人澡人人人超一碰| 向日葵视频成人app网址| 欧美精品福利视频| 色哟哟免费在线观看| 日韩av中文字幕在线免费观看| 国产影视一区二区| 日韩欧美在线观看| 久久久国产精品黄毛片| 中文字幕av一区二区三区高| 亚洲av片不卡无码久久| 国产成人精品aa毛片| 中文字幕在线观看第三页| 亚洲看片一区| 路边理发店露脸熟妇泻火| 激情综合网五月| 精品高清视频| 一区二区在线免费播放| 国产精品最新在线观看| gay欧美网站| 97精品国产91久久久久久| 先锋成人av| 久久在线观看视频| 日本免费在线视频| 在线视频中文亚洲| 免费在线黄色影片| 日韩va亚洲va欧洲va国产| 日韩在线一区二区三区四区| 日韩欧美国产一区二区三区| 国产精品女同一区二区| 欧美日韩综合不卡| 国产性生活视频| 色综合天天综合狠狠| 国产午夜在线播放| 亚洲成人一二三| 国产一级理论片| 亚洲影视在线播放| 岛国毛片在线观看| 亚洲男人的天堂一区二区| 少妇高潮在线观看| 中文字幕在线一区免费| 99久久久无码国产精品不卡| 欧美激情自拍偷拍| 夜夜春很很躁夜夜躁| 久久久久久久久久久黄色| 国产伦精品一区二区三区妓女| 99精品视频在线观看| 极品粉嫩小仙女高潮喷水久久| 99re成人精品视频| 人妻丰满熟妇aⅴ无码| 久久精品网站免费观看| 欧美激情视频二区| 国产精品护士白丝一区av| 小早川怜子一区二区的演员表| 亚洲欧洲日韩在线| 青青草在线观看视频| 一级精品视频在线观看宜春院| 亚洲欧美一区二区三区四区五区| 亚洲精品国产品国语在线app| 久久午夜无码鲁丝片| 亚洲国产视频在线| 免费观看一区二区三区毛片| 一本久久a久久精品亚洲| 亚洲视屏在线观看| 91精品午夜视频| www.四虎在线观看| 亚洲国产精品网站| 成年女人的天堂在线| 日韩中文字幕在线视频播放| 国产乱妇乱子在线播视频播放网站| 国模叶桐国产精品一区| 成人va天堂| 成人中文字幕在线观看| 国产精品久久久久久久久久白浆 | 成人久久久久| 欧美一级特黄aaaaaa在线看片| 在线日韩av| 99热手机在线| 福利一区二区在线观看| 日韩中文字幕电影| 亚洲私人黄色宅男| 亚洲伊人成人网| 欧美精品在线视频| 欧美特级特黄aaaaaa在线看| 亚洲一区二区黄| а√天堂在线官网| 欧美在线视频播放| 国产精品国产亚洲精品| 欧美日韩在线播放一区二区| 国产二区精品| 久草资源站在线观看| 国内欧美视频一区二区| 亚洲一区二区三区综合| 国产精品成人在线观看| 亚洲男人的天堂在线视频| 欧美精品xxxxbbbb| 日韩亚洲视频在线观看| 欧美成人久久久| 日本综合字幕| 动漫美女被爆操久久久| 日韩av二区| 亚洲午夜精品久久久久久人妖| 麻豆一区二区三| 丰满少妇一区二区三区| 亚洲综合999| 91久久国语露脸精品国产高跟| 日韩成人在线视频观看| 91亚洲天堂| 国产精品爽爽爽| 欧美猛男做受videos| 福利在线一区二区| 久久精品久久精品| 麻豆精品免费视频| 一区二区三区中文字幕电影| 中文字幕在线网站| 亚洲色图第一页| 九九精品调教| 成人日韩av在线| 精品国产一区二区三区久久久樱花 | 蜜桃传媒一区二区亚洲| 无吗不卡中文字幕| 欧美特黄一级视频| 欧美国产日韩一区二区| 国产成人久久精品一区二区三区| 日韩亚洲不卡在线| 噜噜噜在线观看免费视频日韩 | 网站一区二区三区| 久久嫩草精品久久久精品一| 99视频在线看| 亚洲国产精品久久久久久| 在线三级电影| 91丝袜美腿美女视频网站| 97精品一区| 日本免费色视频| 国产精品久99| 中文字幕永久在线视频| 日韩亚洲一区二区| 欧洲亚洲精品久久久久| 中文字幕一区二区三区最新| 久久国产精品第一页| 少妇的滋味中文字幕bd| 欧美一a一片一级一片| 岛国最新视频免费在线观看| 国产精品第三页| 不卡中文字幕| 五月激情婷婷在线| 亚洲视频在线一区观看| 国产色视频在线| 欧美二区在线播放| 都市激情亚洲欧美| 欧美国产亚洲一区| 国产日韩欧美一区二区三区乱码| 五月婷婷六月婷婷| 色婷婷**av毛片一区| 成人永久在线| h无码动漫在线观看| 不卡电影一区二区三区| 免费看日韩毛片| 亚洲天堂网在线观看| 热久久久久久| 成人免费观看在线| 91影院在线免费观看| 特级西西444www大胆免费看| 久久精品国产亚洲| 91成人噜噜噜在线播放| 色欲av无码一区二区人妻| 国产亚洲精品bt天堂精选| 中文字幕一区二区三区四区免费看 | 欧美日韩精品一区二区三区 | 天堂av8在线| 亚洲在线成人精品| 完全免费av在线播放| 黄色综合网站| 精品久久久久久中文字幕人妻最新| 在线一区二区三区四区五区| www红色一片_亚洲成a人片在线观看_| 国产精品免费一区二区三区在线观看 | 99re热这里只有精品免费视频| 最新中文字幕在线观看视频| 欧美成人精品h版在线观看| 久久午夜影院| 亚洲免费999| 婷婷开心久久网| 日本中文字幕在线视频| 国产精品久久久对白| 日韩在线一区二区| 亚洲熟女www一区二区三区| 国产丝袜一区二区| 国内精品视频| 噼里啪啦国语在线观看免费版高清版| 亚洲激情欧美激情| 高清毛片在线看| 国产九色精品| 久久se这里有精品| 青青草免费观看视频| 欧美精品免费播放| 精品国内自产拍在线观看视频| 成人欧美精品一区二区|