Go連線資料庫以及sqlx包使用

2021-10-08 07:24:58 字數 2429 閱讀 9545

mysql 連線

//連線

func

initdb()

(err error

) err = db.

ping()

//嘗試連線資料庫;驗證賬號密碼

if err !=

nil //設定連線池中最大的連線數

//設定連線池中的最大閒置連線數

return

}

crud

type user struct

//單行查詢

func

queryone

(id int

)(u user, err error

)return

}//多行查詢

func

queryrows

(n int

)defer rows.

close()

//釋放連線

for rows.

next()

fmt.

println

("query:"

, u)

}return

}//插入

func

insert()

id, err := res.

lastinsertid()

//新插入資料的id

if err !=

nil fmt.

println

(id)

}//更新

func

updata()

n, err := res.

rowsaffected()

// 操作影響的行數

if err !=

nil fmt.

println

(n)}

//刪除

func

delete

(id int

) n, err := res.

rowsaffected()

if err !=

nil fmt.

println

(n)}

支援預處理

//mysql的預處理;當需要重複執行sql的方法時;

//可以提公升伺服器效能,提前讓伺服器編譯,一次編譯多次執行,節省後續編譯的成本。

//避免sql注入

func

preparequery

(n int

) rows, err := stmt.

query

(n)if err !=

nilfor rows.

next()

fmt.

println

(u)}

}

支援事務

//事務  demo

func

transaction()

sqlstr1 :=

`update user set age=age-2 where id=1`

_, err = tx.

exec

(sqlstr1)

if err !=

nil sqlstr2 :=

`update user set age=age-2 where id=2`

_, err = tx.

exec

(sqlstr2)

if err !=

nil err = tx.

commit()

//事務提交

if err !=

nil}

github.com/jmoiron/sqlx是go語言內建database/sql的超集,它在優秀的內建database/sql基礎上提供了一組擴充套件。

//初始化連線

func

initdb()

(err error

) //設定連線池中最大的連線數

//設定連線池中的最大閒置連線數

return

}

//多行查詢

func

query

(n int

) fmt.

printf

("%#v"

, u)

}//單行查詢

func

query

(n int

) fmt.

printf

("%#v"

, u)

}//此外他的db.namedexec(query string, arg inte***ce{})方法支援繫結sql語句與結構體或map中的同名字段來進行sql相關操作

更多相關用法參考:

Go連線資料庫

1.1.2 使用 1.1.3 資料來源連線名 1.1.4 實戰連線 1.2 運算元據庫 1.3 事務 記得一定要導這個包 連線到資料庫.db.close 記得導包 github.com go sql driver mysql 否則會報錯sql unknown driver mysql forgott...

GO連線資料庫

簡介 在 go 中連線資料庫的方式有很多,這裡我們選擇使用 orm 的方式,也就不用寫原生的 sql 語句了.go 的 orm 庫也有很多,這裡選擇了 gorm.安裝 gorm go get u github.com jinzhu gorm啟動資料庫 資料庫選擇了最主流的 mysql.建立資料庫的方...

go mysql連線 使用 Go 連線資料庫

簡介 在 go 中連線資料庫的方式有很多,這裡我們選擇使用 orm 的方式,也就不用寫原生的 sql 語句了.go 的 orm 庫也有很多,這裡選擇了 gorm.安裝 gorm 啟動資料庫 資料庫選擇了最主流的 mysql.建立資料庫的方式有很多,為了便於清理,選擇使用 docker 建立資料庫.新...