golang利用beego框架orm操作mysql

2022-07-01 10:21:14 字數 3776 閱讀 2790

在beego框架中引入orm操作mysql需要進行的步驟:

第一步:匯入orm框架依賴,匯入mysql資料庫的驅動依賴

import (

"github.com/astaxie/beego/orm" //匯入orm框架

_ "github.com/go-sql-driver/mysql" //匯入資料庫驅動

)

第二步:進行模型結構定義

//例如定義user表模型結構

type testuser struct

//注意:以上的欄位名必須大寫,否則無法識別

在進行模型結構定義需要注意的是(模型結構定義也就是表字段定義,beego中的orm框架會自動給你生成模型定義對應的表):

關於表名:預設是生成以結構名小寫並且加上s結尾的表名,也可以自行設定表名

func (u *模型結構名) tablename() string
關於索引定義:可以為單個欄位或多個字段新增索引

// 多欄位索引

func (u *模型結構名) tableindex() string ,

}}// 多欄位唯一鍵

func (u *模型結構名) tableunique() string ,

}}寫法都是固定了,只要按照這樣的方式寫就可以了

關於自定義引擎:對mysql可以支援自定義引擎

// 設定引擎為 innodb

func (u *模型結構名) tableengine() string

關於字段屬性的設定:例如字段大小,欄位的為空不為空等設定

多個設定間使用;分隔,設定的值如果是多個,使用,分隔。

在設定屬性時都是以orm:"你的設定"開頭

設定int型別通常為id欄位自增並且為主鍵:orm:"pk;auto"

為空設定:資料庫表預設為not null,設定 null 代表allow null

name string orm:"null"表示name欄位可以為空

為單個字段新增索引或者唯一索引:name strig orm:"index"或者`name string orm:"unique"

為字段設定對應的列名:name string orm:"column(user_name)"

設定欄位的大寫設定 size 以後,db type 將使用 varchar(size):name string orm:"size(10)"

為字段設定浮點數精度:money float64 orm:"digits(12);decimals(4)"結果顯示9999.9999

時間型別的設定

設定為 date 時,time.time 欄位的對應 db 型別使用 date

created time.time `orm:"auto_now_add;type(date)"`
設定為 datetime 時,time.time 欄位的對應 db 型別使用 datetime

created time.time `orm:"auto_now_add;type(datetime)"`
設定為字段新增注釋:注釋中禁止包含引號

status int orm:"default(1)" description:"這是狀態字段"

第三步:進行初始化操作,主要進行建立資料庫連線,以及註冊模型結構,建表等操作。

func init()
注:以上沒有引入關聯關係操作

第四步:編寫sql語句進行操作mysql資料庫

//查詢所有學生資訊

func selectall() orm.params

//根據id查詢學生資訊

func selectbyid(id int) stu

//根據id刪除使用者

func deletebyid(id int)

//根據id更新資訊

func updatebyid(id int,name string)

//插入資料

func insertdata(id int,name string)

//根據name進行模糊查詢

func selectunclear(name string) orm.params

控制器編寫並且返回json資料

//全域性變數

var stu models.stu

//查詢所有資訊

func (c *selectall) get()

type selectbyid struct

//根據id查詢使用者

func (c *selectbyid) get()

//根據id刪除使用者

type deletebyid struct

func (c *deletebyid) get()

//根據id更新資訊

type updatebyid struct

func (c *updatebyid) get()

//插入資料

type insertdata struct

func (c *insertdata) get()

//模糊查詢

type selectunclear struct

func (c *selectunclear) get()以上就是beego引入orm框架操作mysql資料庫的簡單練習

beego 當初設計的時候就考慮了 api 功能的設計,而我們在設計 api 的時候經常是輸出 json 或者 xml 資料,那麼 beego 提供了這樣的方式直接輸出:

注意 struct 屬性應該 為 exported identifier 也就是首字母應該大寫

開發模式下序列化後輸出的是格式化易閱讀的 json 或 xml 字串;在生產模式下序列化後輸出的是壓縮的字串。

golang頁面模板tpl從列表中迴圈取值

}[ },} ]

}如果是返回的是物件列表:例如:,現在我想取裡面的第乙個{}內容,使用}即可。

如果是想取結構體裡面某乙個欄位的值則使用:}

beego框架利用bee api建立api框架

首先需要beego框架的環境,若未安裝,或者版本太老不具有api功能,請先更新或安裝此篇。1.安裝好beego環境 2.利用bee api建立 開啟doc視窗,進入到專案src目錄下。即root。bee api基本語法 test tables a list of table names separa...

golang開發環境配置及Beego框架安裝

配置環境 windows7 安裝步驟 一 go環境安裝 二 配置系統變數 三 beego安裝 一 go環境安裝 二 配置系統變數 新增2個系統變數 1 設定gopath 值為 e gopath 2 設定gobin 值為 goroot bin 三 beego安裝 開啟cmd分別執行如下命令 新建專案 ...

golang開發環境配置及Beego框架安裝

配置環境 windows7 安裝步驟 一 go環境安裝 二 配置系統變數 三 beego安裝 一 go環境安裝 二 配置系統變數 新增2個系統變數 1 設定gopath 值為 e gopath 2 設定gobin 值為 goroot bin 三 beego安裝 開啟cmd分別執行如下命令 新建專案 ...