精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美久久综合性欧美| 国内免费精品永久在线视频| 手机免费av片| 国语对白在线刺激| 国产亚洲va综合人人澡精品| 91深夜福利视频| 日韩 欧美 综合| 天天综合亚洲| 精品无码久久久久久国产| 亚洲视频一二三四| 性欧美freesex顶级少妇| 中日韩免费视频中文字幕| 国产精品区一区二区三在线播放| 国产99免费视频| 精品1区2区3区4区| 色婷婷综合久久久久中文字幕1| 扒开伸进免费视频| 香蕉久久一区| 色屁屁一区二区| 国产妇女馒头高清泬20p多| 成年人在线免费观看| 成人一区在线看| 91精品久久久久久久久久久| 国产精品100| 午夜视频一区| 久久精品中文字幕一区| 一区二区黄色片| 精品欧美午夜寂寞影院| 日韩欧美国产小视频| 黄色永久免费网站| 亚洲欧洲自拍| 亚洲高清久久久| 福利在线小视频| 日本三级在线视频| 日本一区二区久久| 久久伦理网站| 神马精品久久| 9色porny自拍视频一区二区| 成人午夜电影在线播放| 国产乱淫av免费| 日本特黄久久久高潮| 热草久综合在线| 国产微拍精品一区| 亚洲精选成人| 91av在线看| 亚欧视频在线观看| 亚洲精品婷婷| 98精品国产自产在线观看| 久久97人妻无码一区二区三区| 亚洲色图欧美| 美女福利视频一区| 国产精品白丝喷水在线观看| 91精品秘密在线观看| 日韩在线播放视频| 欧美精品久久久久久久久46p| 成人在线丰满少妇av| 亚洲一区二区精品| www久久久久久久| 狠狠色狠狠色综合婷婷tag| 亚洲乱码一区av黑人高潮 | 成人18精品视频| 国产一区二区三区高清视频| 天天舔天天干天天操| 91网站最新网址| 欧美日本韩国国产| 香蕉视频网站在线观看| 亚洲欧洲99久久| 日本免费黄色小视频| 成人av影院在线观看| 午夜精品免费在线| 黄www在线观看| 成人开心激情| 91精品国产综合久久婷婷香蕉| 杨幂一区二区国产精品| 加勒比久久高清| 亚洲人成网站色ww在线| 99成人在线观看| 欧美日一区二区在线观看| 欧美精品激情blacked18| 99热国产在线观看| 日本中文字幕一区| 国产欧美日韩精品在线观看| 国产夫绿帽单男3p精品视频| 成人短视频下载| 色综合久久88色综合天天提莫| 免费黄色网址在线观看| 亚洲国产一二三| 男女午夜激情视频| 婷婷成人av| 亚洲精品国产suv| 国产精成人品免费观看| 欧美日韩中文| 国产精品午夜视频| 蜜臀久久久久久999| 国产无人区一区二区三区| 一区二区三区四区视频在线观看| 国产啊啊啊视频在线观看| 色婷婷久久久亚洲一区二区三区 | 97成人超碰视| 一区二区在线不卡| 精品丝袜在线| 666欧美在线视频| 四虎永久免费影院| 欧美一区影院| 国产精品小说在线| 蜜桃视频污在线观看| 中文无字幕一区二区三区| aa视频在线播放| 日韩电影精品| 亚洲网站在线观看| 国产精品免费av一区二区| 久久精品99国产精品日本| 久久99精品久久久久久久青青日本| av一本在线| 欧美性20hd另类| 亚洲女则毛耸耸bbw| 97国产精品| 国产精品1234| 四虎国产精品永远| 亚洲一级二级三级| 日韩欧美理论片| 欧美中文一区二区| 欧美最顶级的aⅴ艳星| 风流少妇一区二区三区91| 亚洲欧洲日产国产综合网| 玩弄japan白嫩少妇hd| 国产精品久久久网站| 欧美成人免费全部| 一级特黄aa大片| 欧美国产精品一区二区三区| 色欲av无码一区二区人妻| 亚洲国产中文在线二区三区免| 日韩在线免费高清视频| 国产精品午夜一区二区| 国产亚洲婷婷免费| 亚洲精品乱码久久久久久自慰| 日韩伦理一区二区三区| 国内外成人免费激情在线视频| www三级免费| 亚洲免费伊人电影| 伊人av在线播放| 久久精品青草| 亚洲综合第一页| 成人高清免费在线| 91精品久久久久久久99蜜桃| 亚洲综合久久av一区二区三区| 毛片av中文字幕一区二区| 神马一区二区影院| 国产毛片精品久久| 日日骚久久av| 国产三区在线播放| 亚洲女子a中天字幕| 丰满人妻一区二区三区大胸| 欧美日韩国产欧| 精品国产乱码久久久久软件| www.综合| 亚洲视频专区在线| 久草视频在线免费| 国产精品狼人久久影院观看方式| 国内外成人免费在线视频| 婷婷丁香综合| 操一操视频一区| 日韩脚交footjobhdboots| 亚洲欧美自拍一区| 中文字幕一区二区在线视频 | 亚洲精品国产美女| 国内自拍视频在线播放| 国产精品天美传媒| 中国男女全黄大片| 在线亚洲欧美| 少妇免费毛片久久久久久久久| 亚洲人体在线| 久久免费在线观看| 裸体xxxx视频在线| 3d成人动漫网站| 国产小视频在线看| 久久久国际精品| 亚洲欧美国产中文| 91久久亚洲| 亚洲精品日韩在线观看| 亚洲国产视频二区| 国产成人97精品免费看片| 最新97超碰在线| 精品动漫一区二区三区在线观看| 中文字幕手机在线视频| 综合自拍亚洲综合图不卡区| 亚洲av成人精品一区二区三区| 久久只有精品| 真人做人试看60分钟免费| 天美av一区二区三区久久| 国产精品专区一| 超碰成人av| yw.139尤物在线精品视频| 亚洲av成人无码网天堂| 欧美日韩成人高清| 日韩精品一区二区三| 中文字幕一区二区不卡| 黄色av网址在线观看| 久久机这里只有精品| a√天堂在线观看| 国产韩日影视精品| 欧美精品一区二区三区久久| 视频精品国内| 国产美女91呻吟求| 日韩在线伦理| 欧美俄罗斯乱妇| 超碰97在线免费观看| 亚洲国产精品成人va在线观看| 亚洲视频在线免费播放| 欧美午夜精品久久久久久人妖| 日日骚一区二区三区| 国产精品午夜电影| 日本黄色网址大全| 国产在线播放一区二区三区| 九热视频在线观看| 99精品国产福利在线观看免费| 日韩一二区视频| 91一区在线| 亚洲精品国产一区| 国产一区二区欧美| 乱一区二区三区在线播放| 中文字幕久久精品一区二区 | 欧美美女啪啪| 成人动漫视频在线观看免费| 久久人体av| 国产精品久久精品| 成人视屏在线观看| 欧美孕妇孕交黑巨大网站| 超碰97免费在线| 色综合久久88色综合天天看泰| 日本在线看片免费人成视1000| 国产亚洲精品91在线| 亚洲色图另类小说| 亚洲黄色www| 日韩一区二区三区不卡| 欧美va日韩va| 韩国av永久免费| 精品粉嫩超白一线天av| 欧美性猛交 xxxx| 欧美mv日韩mv| 日韩在线视频观看免费| 精品欧美一区二区三区精品久久| 不卡的日韩av| 日韩免费一区二区| 亚洲美女性生活| 精品国产乱码久久久久久1区2区| 蜜臀av午夜精品| 亚洲黄色在线看| 日本视频在线观看一区二区三区| 日韩高清不卡av| 国产在线观看精品一区| 一区二区在线免费视频| 国产高清视频免费最新在线| 伊人久久久久久久久久久| www日韩tube| 日韩在线视频免费观看| 91精品国产91久久久久久青草| 欧美乱人伦中文字幕在线| 2020av在线| 日本aⅴ大伊香蕉精品视频| 午夜无码国产理论在线| 成人免费淫片aa视频免费| 日韩精品一区二区三区免费视频| 粉嫩av四季av绯色av第一区| 久本草在线中文字幕亚洲| 鲁丝片一区二区三区| 欧美手机在线| 久久久久亚洲av无码专区喷水| 国内精品久久久久国产盗摄免费观看完整版| 亚洲区成人777777精品| 亚洲国产高清一区| 女人另类性混交zo| 捆绑调教一区二区三区| av在线免费观看不卡| 99麻豆久久久国产精品免费优播| 国产交换配乱淫视频免费| 亚洲欧洲99久久| 日韩美女一级片| 欧美中文字幕亚洲一区二区va在线| 又色又爽又黄无遮挡的免费视频| 91精品国产综合久久久久久久久久 | 久久久久久国产免费a片| 亚洲免费在线看| 91精品国产高清一区二区三密臀| 欧美精品777| 少妇喷水在线观看| 正在播放欧美视频| 免费看电影在线| 国产精品久久久久久亚洲影视 | 欧美成人手机视频| 精品美女国产在线| 亚洲在线观看av| 亚洲精品成人久久电影| 成人在线播放免费观看| 欧美中文在线字幕| 视频精品国内| 一区二区国产日产| 亚洲永久免费| 久久av一区二区三| 国产精品视频你懂的| 国产乱码久久久久久| 欧美日韩视频在线第一区 | 国产精品无人区| 日韩精品一区二区三区国语自制 | 人妻无码中文字幕| 日韩视频第一页| 一本大道色婷婷在线| 91精品国产99久久久久久红楼| 欧美日韩有码| 精品一区二区中文字幕| 成人一级黄色片| 永久免费看mv网站入口| 一本一本久久a久久精品综合麻豆| 精品国产无码AV| 中文字幕在线看视频国产欧美在线看完整 | 成年人网站免费看| 亚洲最快最全在线视频| 国产又色又爽又黄又免费| 亚洲欧美制服另类日韩| 91九色美女在线视频| 亚洲自拍中文字幕| 国产精品久久观看| 国产精品入口免费软件| 2023国产一二三区日本精品2022| 国产在线欧美在线| 日韩欧美久久久| а天堂中文在线官网| 成人av资源在线播放| 日韩欧美一区二区三区免费看| 日韩a在线播放| 99精品视频在线免费观看| 青青成人在线| 在线观看免费中文字幕| 8x福利精品第一导航| 日本在线观看| 国产日韩av在线播放| 清纯唯美日韩| 女同激情久久av久久| 国产精品美女久久福利网站| 中文字幕人妻色偷偷久久| 国产一级揄自揄精品视频| 成人在线爆射| 婷婷久久伊人| 美女精品自拍一二三四| 青青青手机在线视频| 欧美日本一区二区三区四区| 日本网站在线免费观看视频| 成人免费xxxxx在线观看| 91成人国产| 免费黄视频在线观看| 亚洲高清免费观看| 亚洲色图狠狠干| 国产精品99久久99久久久二8| 欧美日韩伦理在线免费| 国产美女18xxxx免费视频| 亚洲精品视频自拍| 性生活免费网站| 91国内精品久久| 神马影视一区二区| 最新中文字幕2018| 亚洲免费视频成人| 黄色av免费观看| 欧美中在线观看| 成人在线电影在线观看视频| 中文字幕一区二区在线观看视频| 一级中文字幕一区二区| 性xxxx视频播放免费| 国产精品第100页| 99精品在线| 中文字幕人妻一区二区三区| 日韩欧美精品网址| 青青青青在线| 国产精品手机在线| 久热精品在线| 中文字幕手机在线观看| 日韩不卡中文字幕| 99精品在免费线偷拍| 精品嫩模一区二区三区| 99久久久久免费精品国产| 毛片在线免费播放| 久久成人精品视频| 特黄特色欧美大片| 一区二区免费av| 黄色一区二区在线| av电影在线观看| 国产精品美女诱惑| 男人的j进女人的j一区| 清纯粉嫩极品夜夜嗨av| 亚洲欧美福利视频| 高清不卡一区| 日本一极黄色片| 亚洲午夜视频在线| 五月婷婷在线视频| 中文字幕9999| 久久久999久久久| 日韩视频―中文字幕| 99久久香蕉| 中文字幕成人免费视频| 午夜精品久久久久久久99水蜜桃| 888av在线|