日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

xorm入门

發布時間:2024/3/24 71 豆豆
生活随笔 收集整理的這篇文章主要介紹了 xorm入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、xorm介紹

xorm是一個Go語言的ORM庫。通過它可以使數據庫操作非常簡便。xorm的目標并不是讓你完全不去學習SQL,xorm可以解決絕大部分的簡單SQL需求。

二、環境準備

(1)下載xorm和mysql驅動

$ go get github.com/go-xorm/cmd/xorm $ go get -u github.com/go-sql-driver/mysql

(2)創建數據庫

$ create database lottery $ use lottery

創建完數據庫后,導入以下數據庫腳本。

DROP TABLE IF EXISTS `lt_user`; CREATE TABLE `lt_user` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`username` varchar(50) NOT NULL DEFAULT '' COMMENT '用戶名',`blacktime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '黑名單限制到期時間',`realname` varchar(50) NOT NULL DEFAULT '' COMMENT '聯系人',`mobile` varchar(50) NOT NULL DEFAULT '' COMMENT '手機號',`address` varchar(255) NOT NULL DEFAULT '' COMMENT '聯系地址',`sys_created` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '創建時間',`sys_updated` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '修改時間',`sys_ip` varchar(50) NOT NULL DEFAULT '' COMMENT 'IP地址',PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=40652 DEFAULT CHARSET=utf8;

(3)新建一個Go工程,新建一個models文件夾,然后在文件夾下定義LtUser結構體。

type LtUser struct {Id int `json:"id" xorm:"not null pk autoincr INT(10)"`Username string `json:"username" xorm:"not null default '' comment('用戶名') VARCHAR(50)"`Blacktime int `json:"blacktime" xorm:"not null default 0 comment('黑名單限制到期時間') INT(10)"`Realname string `json:"realname" xorm:"not null default '' comment('聯系人') VARCHAR(50)"`Mobile string `json:"mobile" xorm:"not null default '' comment('手機號') VARCHAR(50)"`Address string `json:"address" xorm:"not null default '' comment('聯系地址') VARCHAR(255)"`SysCreated int `json:"sys_created" xorm:"not null default 0 comment('創建時間') INT(10)"`SysUpdated int `json:"sys_updated" xorm:"not null default 0 comment('修改時間') INT(10)"`SysIp string `json:"sys_ip" xorm:"not null default '' comment('IP地址') VARCHAR(50)"` }

結構體中的每個屬性與lt_user表的字段一一對應。

三、第一個Hello World

(1)創建xorm.Engine實例。

// 構建一個xorm.Engine實例 func NewDbEngine() *xorm.Engine{// url格式:[username]:[password]@tcp([ip]:[port])/[database]?charset=utf8dbUrl := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8","root","root","127.0.0.1",3306,"lottery")// 創建Engine實例engine, err := xorm.NewEngine("mysql", dbUrl)if err != nil {panic(err)}// 顯示sqlengine.ShowSQL(true)return engine }

(2)定義測試方法

func main() {// 創建xorm.Engine實例dbEngine := NewDbEngine()// 定義一個切片,保存所有用戶datalist := make([]models.LtUser, 0)// 按照id的倒序查詢用戶err := dbEngine.Desc("id").Find(&datalist)// 判斷查詢是否成功if err != nil {panic(err)}// 遍歷輸出結果for i := range datalist {fmt.Printf("%v \n", datalist[i])} }

(3)導入mysql驅動

_ "github.com/go-sql-driver/mysql"

(4)運行測試,效果如下圖所示

四、反向生成實體

先進入工程所在路徑,然后執行以下命令。

# 命令格式 xorm reverse mysql [username]:[password]@/[database]?charset=utf8 [template]例如: xorm reverse mysql root:root@/fox?charset=utf8 templates/goxorm

上面命令會把數據庫表反向生成models/**的實體。

總結

以上是生活随笔為你收集整理的xorm入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。