go——beego的資料庫增刪改查

來源:互聯網
上載者:User

標籤:

      一直都不理解使用go語言的時候,為什麼還要自己去裝beego,以為使用go便可以解決所有的問題,結果在朋友的點撥下,才意識到:

      go與beego的關係就好比是nodejs與thinkjs的關係,因此也就不怎麼存在疑問為什麼還要繼續安裝beego來完成項目運行了,beego其實就是一個快速開發Go應用的http架構,go 語言方面技術大牛,可以用來快速開發API、Web、後端服務等各種應用,是一個RESTFul的架構。再次附上beego的官網(http://beego.me/docs/intro/)

       接著開始我們的資料庫“增刪改查”操作吧!

1.golang本身沒有提供串連MySQL的驅動,但是定義了標準介面供第三方開發驅動。這裡串連mysql可以使用第三方庫,第三方庫推薦使用https://github.com/Go-SQL-Driver/MySQL這個驅動,更新維護都比較好;先要下載驅動,在cmd中執行

go get github.com/go-sql-driver/mysql

 

2.建立測試資料庫(我們一直在用的Navicat,就用它做例子)

CREATE DATABASE golang; CREATE TABLE IF NOT EXISTS `golang`.`user` ( `userid` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT ‘使用者編號‘, `username` VARCHAR(45) NOT NULL COMMENT ‘使用者名稱稱‘, `userage` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT ‘使用者年齡‘, `usersex` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT ‘使用者性別‘, PRIMARY KEY (`userid`)) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = ‘使用者表‘

 

3.串連資料庫:資料庫連接使用datebase/sql Open函數進行串連

db, err := sql.Open("mysql", "user:[email protected](localhost:5555)/dbname?charset=utf8")其中串連參數可以有如下幾種形式:[email protected](/path/to/socket)/dbname?charset=utf8user:[email protected](localhost:5555)/dbname?charset=utf8user:[email protected]/dbnameuser:[email protected]([de:ad:be:ef::ca:fe]:80)/dbname

一般,大家都使用第二種。

 

4.在liteIDE中寫程式,完整代碼如下:

package mainimport (    _ "crud/routers"    "database/sql"    "fmt"    _ "github.com/go-sql-driver/mysql")func main() {    query()}//增加資料func insert() {    db, err := sql.Open("mysql", "root:[email protected]/golang?charset=utf8")    checkErr(err)    stmt, err := db.Prepare(`INSERT user (userid,username,userage,usersex) values (?,?,?,?)`)    checkErr(err)    res, err := stmt.Exec(1, "Mary", 20, 1)    checkErr(err)    id, err := res.LastInsertId()    checkErr(err)    fmt.Println(id)}//刪除資料func remove() {    db, err := sql.Open("mysql", "root:[email protected]/golang?charset=utf8")    checkErr(err)    stmt, err := db.Prepare(`DELETE FROM user WHERE userid=?`)    checkErr(err)    res, err := stmt.Exec(1)    checkErr(err)    num, err := res.RowsAffected()    checkErr(err)    fmt.Println(num)}//更新資料func update() {    db, err := sql.Open("mysql", "root:[email protected]/golang?charset=utf8")    checkErr(err)    stmt, err := db.Prepare(`UPDATE user SET userage=?,usersex=? WHERE userid=?`)    checkErr(err)    res, err := stmt.Exec(21, 2, 2)    checkErr(err)    num, err := res.RowsAffected()    checkErr(err)    fmt.Println(num)}//查詢資料func query() {    db, err := sql.Open("mysql", "root:[email protected]/golang?charset=utf8")    checkErr(err)    rows, err := db.Query("SELECT * FROM user")    checkErr(err)    //    //普通demo    for rows.Next() {        var userid int        var username string        var userage int        var usersex int        rows.Columns()        err = rows.Scan(&userid, &username, &userage, &usersex)        checkErr(err)        fmt.Println(userid)        fmt.Println(username)        fmt.Println(userage)        fmt.Println(usersex)    }}func checkErr(err error) {    if err != nil {        panic(err)    }}

 

於是就在這個表裡進行增刪改查了……

 

 

我並沒有使用beego中的orm架構,是因為剛開始在看的時候忽略了orm。。。。。。。有點小疏忽,,,明天再研究。

go——beego的資料庫增刪改查

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.