xorm的基本使用

2021-08-21 07:31:43 字數 2220 閱讀 9514

安裝:go get github.com/go-xorm/xorm

1.建立連線

//建立orm引擎

//"root:password@/xorm?charset=utf8":root為使用者名稱,password為密碼,xorm為資料庫

//mysql要匯入:import _ "github.com/go-sql-driver/mysql"

engine, err := xorm.newengine("mysql", "root:password@/xorm?charset=utf8")

if err!=nil

create

table

`user` (

`id`

int(11) not

null auto_increment,

`username`

varchar(32) not

null comment '使用者名稱',

`birthday`

date

default

null comment '生日',

`***`

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

安裝工具: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中

//連線測試

if err := engine.ping(); err!=nil

//日誌列印sql

engine.showsql(true)

//設定連線池的空閒數大小

engine.setmaxidleconns(5)

//設定最大開啟連線數

engine.setmaxopenconns(5)

//名稱對映規則主要負責結構體名稱到表名和結構體field到表字段的名稱對映

//增//user := new(user)

"tyming"

//affected,err := engine.insert(user)

//刪//user := new(user)

"tyming"

//affected_delete,err := engine.delete(user)

//改//user := new(user)

"tyming"

//affected_update,err := engine.id(1).update(user)

//查 user := new(user)

//result,err := engine.id(1).get(user)

result,err := engine.where("id=?"

,1).get(user)

fmt.println(result)

}

2)github的readme.md:

Xorm的框架使用 準備工作

1 正確配置完go的編譯環境 2 命令列執行 以下命令,將引擎庫同步下來 go get github.com go xorm xorm3 後面使用sqlite3 作為測試 資料庫,因此還需要安裝sqlite3的引擎 通過檢視官網說明 go get github.com mattn go sqlite...

xorm (一)建立引擎,實現簡單的查詢

1 建立引擎,鏈結資料庫,設定debug啟動方式。連線到資料庫 func newengin xorm.engine debug模式,列印全部的sql語句,幫助對比,看orm與sql執行的對照關係 engine.showsql true return engine 2 配置config檔案,一般將驅動...

基於 xorm 的服務端框架 XGoServer

掘金 部落格 github 你可以使用它 具備的如果你想直接輸出一條 json 給客戶端,這樣子 結果 與資料庫互動 affect,core.engine.insert item 執行插入,傳入 struct 引用 m map string inte ce if affect 0 else retu...