免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

go語言中Query go語言中文文檔

golang-gin框架參數(shù)解析

g.GetHeader("token")

專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來客戶和效益!創(chuàng)新互聯(lián)為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計制作,服務(wù)好的網(wǎng)站設(shè)計公司,成都網(wǎng)站設(shè)計、成都做網(wǎng)站負(fù)責(zé)任的成都網(wǎng)站制作公司!

g.Request.Header.Get("token")

h := HeaderParam{}?

g.ShouldBindHeader(h)? ? ? ? ? ?//使用結(jié)構(gòu)體可以解析,map無效

如:測試

g.DefaultQuery("test","")

g.Query("test")

g.Request.URL.Query().Get("test")

//text類型參數(shù)

formP,ok := g.GetPostForm("test")

formP := g.DefaultPostForm("test","")

formP :=g.Request.PostForm.Get("test")

//file類型

file,err := r.FormFile("file")? ? //單個

//多個formData解析

formDatas,err := r.MultipartForm()

if err !=nil formDatas !=nil {

files := formDatas.File["files"]

textParams := formDatas.Value["params"]

}

數(shù)據(jù)解析,同一個參數(shù),只可調(diào)用一次,不然會EOF

1、定義結(jié)構(gòu)體解析

uploadInfo :=model.UploadInfo{}

err := c.ShouldBindJSON(uploadInfo)

2、可用map解析出來后再遍歷

uploadInfo?:= make(map[string]interface{})

err := c.ShouldBindJSON(uploadInfo)

GO語言(三十二):訪問關(guān)系型數(shù)據(jù)庫(下)

在本節(jié)中,您將使用 Go 執(zhí)行 SQL INSERT語句以向數(shù)據(jù)庫添加新行。

您已經(jīng)了解了如何使用Query和QueryRow處理返回數(shù)據(jù)的 SQL 語句。要執(zhí)行 不 返回數(shù)據(jù)的 SQL 語句,請使用Exec.

1、在albumByID下面,粘貼以下addAlbum函數(shù)以在數(shù)據(jù)庫中插入新專輯,然后保存 main.go。

在此代碼中:

(1)用DB.Exec執(zhí)行INSERT語句。

Exec接受一條 SQL 語句,后跟 SQL 語句的參數(shù)值。

(2)檢查嘗試INSERT中的錯誤。

(3)使用Result.LastInsertId檢索插入的數(shù)據(jù)庫行的 ID 。

(4)檢查嘗試檢索 ID 的錯誤。

2、更新main以調(diào)用新addAlbum函數(shù)。

在main函數(shù)末尾添加以下代碼。

在新代碼中:

(1)調(diào)用addAlbum添加新專輯,將要添加的專輯的 ID 分配給albID變量。

從包含 main.go 目錄的命令行中,運行代碼。

恭喜!您剛剛使用 Go 對關(guān)系數(shù)據(jù)庫執(zhí)行了簡單的操作。

本節(jié)包含您使用本教程構(gòu)建的應(yīng)用程序的代碼。

golang的swagger注解

@Tags : 分類信息

例如:

@Summary : 操作的簡短摘要。

例如:

@Description : 操作的詳細(xì)說明。

例如:

@Param :參數(shù)信息,用空格分隔的參數(shù)。param name,param type,data type,is mandatory?,comment attribute(optional)

1.參數(shù)名

2.參數(shù)類型,可以有的值是 formData、query、path、body、header,formData 表示是 post 請求的數(shù)據(jù),query 表示帶在 url 之后的參數(shù),path 表示請求路徑上得參數(shù),例如上面例子里面的 key,body 表示是一個 raw 數(shù)據(jù)請求,header 表示帶在 header 信息中得參數(shù)。

3.參數(shù)類型

4.是否必須

5.注釋

例如:

go語言postgresql數(shù)據(jù)庫驅(qū)動怎么用

PostgreSQL和MySQL比較,它更加龐大一點,因為它是用來替代Oracle而設(shè)計的。所以在企業(yè)應(yīng)用中采用PostgreSQL是一個明智的選擇。

現(xiàn)在MySQL被Oracle收購之后,有傳聞Oracle正在逐步的封閉MySQL,,鑒于此,將來我們也許會選擇PostgreSQL而不是MySQL作為項目的后端數(shù)據(jù)庫。

1、驅(qū)動

Go實現(xiàn)的支持PostgreSQL的驅(qū)動也很多,因為國外很多人在開發(fā)中使用了這個數(shù)據(jù)庫。

支持database/sql驅(qū)動,純Go寫的

支持database/sql驅(qū)動,純Go寫的

支持database/sql驅(qū)動,純Go寫的

在下面的示例中我采用了第一個驅(qū)動,因為它目前使用的人最多,在github上也比較活躍。

2、實例代碼

數(shù)據(jù)庫建表語句:

復(fù)制代碼

CREATE TABLE userinfo

(

uid serial NOT NULL,

username character varying(100) NOT NULL,

departname character varying(500) NOT NULL,

Created date,

CONSTRAINT userinfo_pkey PRIMARY KEY (uid)

)

WITH (OIDS=FALSE);

CREATE TABLE userdeatail

(

uid integer,

intro character varying(100),

profile character varying(100)

)

WITH(OIDS=FALSE);

復(fù)制代碼

看下面這個Go如何操作數(shù)據(jù)庫表數(shù)據(jù):增刪改查

復(fù)制代碼

package main

import (

"database/sql"

"fmt"

_ "github.com/bmizerany/pq"

)

func main() {

db, err := sql.Open("postgres", "user=astaxie password=astaxie dbname=test sslmode=disable")

checkErr(err)

//插入數(shù)據(jù)

stmt, err := db.Prepare("INSERT INTO userinfo(username,departname,created) VALUES($1,$2,$3) RETURNING uid")

checkErr(err)

res, err := stmt.Exec("astaxie", "研發(fā)部門", "2012-12-09")

checkErr(err)

//pg不支持這個函數(shù),因為他沒有類似MySQL的自增ID

id, err := res.LastInsertId()

checkErr(err)

fmt.Println(id)

//更新數(shù)據(jù)

stmt, err = db.Prepare("update userinfo set username=$1 where uid=$2")

checkErr(err)

res, err = stmt.Exec("astaxieupdate", 1)

checkErr(err)

affect, err := res.RowsAffected()

checkErr(err)

fmt.Println(affect)

//查詢數(shù)據(jù)

rows, err := db.Query("SELECT * FROM userinfo")

checkErr(err)

for rows.Next() {

var uid int

var username string

var department string

var created string

err = rows.Scan(uid, username, department, created)

checkErr(err)

fmt.Println(uid)

fmt.Println(username)

fmt.Println(department)

fmt.Println(created)

}

//刪除數(shù)據(jù)

stmt, err = db.Prepare("delete from userinfo where uid=$1")

checkErr(err)

res, err = stmt.Exec(1)

checkErr(err)

affect, err = res.RowsAffected()

checkErr(err)

fmt.Println(affect)

db.Close()

}

func checkErr(err error) {

if err != nil {

panic(err)

}

}

復(fù)制代碼

從上面的代碼我們可以看到,PostgreSQL是通過$1,$2這種方式來指定要傳遞的參數(shù),而不是MySQL中的?,另外在sql.Open中的dsn信息的格式也與MySQL的驅(qū)動中的dsn格式不一樣,所以在使用時請注意它們的差異。

還有pg不支持LastInsertId函數(shù),因為PostgreSQL內(nèi)部沒有實現(xiàn)類似MySQL的自增ID返回,其他的代碼幾乎是一模一樣

網(wǎng)頁標(biāo)題:go語言中Query go語言中文文檔
URL標(biāo)題:http://m.newbst.com/article24/dddopje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)云服務(wù)器、自適應(yīng)網(wǎng)站、搜索引擎優(yōu)化、微信小程序商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)