日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

xorm的基本使用

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

中文文檔:http://www.xorm.io/docs/
github地址:https://github.com/go-xorm/xorm
安裝:go get github.com/go-xorm/xorm

基本使用
1.創建連接

//創建orm引擎//"root:password@/xorm?charset=utf8":root為用戶名,password為密碼,xorm為數據庫//整體格式:"數據庫名稱:數據庫連接密碼@(數據庫地址:3306)/數據庫實例名稱?charset=utf8"//mysql要導入:import _ "github.com/go-sql-driver/mysql"engine, err := xorm.NewEngine("mysql", "root:password@/xorm?charset=utf8")if err!=nil{fmt.Println(err)return}

2.創建映射(可以手動編寫也可以使用工具生成)
數據庫對應的表:

CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(32) NOT NULL COMMENT '用戶名稱',`birthday` date DEFAULT NULL COMMENT '生日',`sex` char(1) DEFAULT NULL COMMENT '性別',`address` varchar(256) DEFAULT NULL COMMENT '地址',PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8;

對應的結構體:

type User struct {Id int `xorm:"not null pk autoincr INT(11)"`Username string `xorm:"not null VARCHAR(32)"`Birthday time.Time `xorm:"DATE"`Sex string `xorm:"CHAR(1)"`Address string `xorm:"VARCHAR(256)"` }

工具自動生成方法:使用xorm工具
安裝工具:go get github.com/go-xorm/cmd/xorm
命令行輸入:xorm reverse mysql root:密碼@/xorm?charset=utf8 /home/tym/golib/src/github.com/go-xorm/cmd/xorm/templates/goxorm/
/home/tym/golib/src/github.com/go-xorm/cmd/xorm/templates/goxorm/這一串是模版的位置(GOPATH/src里)
不寫生成路徑會在你的目錄下建一個model,對應文件生成在model中

3.增刪改查演示

package mainimport ("github.com/go-xorm/xorm""time""fmt""github.com/go-xorm/core"_ "github.com/go-sql-driver/mysql")type User struct {Id int `xorm:"not null pk autoincr INT(11)"`Username string `xorm:"not null VARCHAR(32)"`Birthday time.Time `xorm:"DATE"`Sex string `xorm:"CHAR(1)"`Address string `xorm:"VARCHAR(256)"` }func main() {//創建orm引擎engine, err := xorm.NewEngine("mysql", "root:123456@/xorm?charset=utf8")if err!=nil{fmt.Println(err)return}//連接測試if err := engine.Ping(); err!=nil{fmt.Println(err)return}//日志打印SQLengine.ShowSQL(true)//設置連接池的空閑數大小engine.SetMaxIdleConns(5)//設置最大打開連接數engine.SetMaxOpenConns(5)//名稱映射規則主要負責結構體名稱到表名和結構體field到表字段的名稱映射engine.SetTableMapper(core.SnakeMapper{})//增//user := new(User)//user.Username="tyming"//affected,err := engine.Insert(user)//fmt.Println(affected)//刪//user := new(User)//user.Username="tyming"//affected_delete,err := engine.Delete(user)//fmt.Println(affected_delete)//改//user := new(User)//user.Username="tyming"//affected_update,err := engine.Id(1).Update(user)//fmt.Println(affected_update)//查user := new(User)//result,err := engine.Id(1).Get(user)result,err := engine.Where("id=?",1).Get(user)fmt.Println(result)}

xorm更多操作可以參考:
1)中文文檔:http://www.xorm.io/docs/
2)github的README.md:https://github.com/go-xorm/xorm

總結

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

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