Go語言(十五)Database Sql操作

2021-10-01 20:51:24 字數 2567 閱讀 4424

go語言標準庫中有兩個包和db操作相關,database/sql和database/sql/driver。

sql包提供了保證sql或類sql資料庫的泛用介面。

driver包定義了應被資料庫驅動實現的介面,這些介面會被sql包使用。

go語言標準庫提供的兩個包都是相關介面,要連線資料庫還需要相關驅動程式。

go-sql-driver/mysql2、sql操作

程式中需要匯入兩個包。

mysql驅動包只需要引入init()函式就行。

import

("database/sql"

//通過_引入init()函式

//驅動初始化

)//初始函式給mysql註冊了驅動

func

init()

)}

1、連線驅動格式

在sql包下的open函式中,需要連線資料庫的驅動。格式如下

"mysql"

,"username:password@tcp(127.0.0.1:3306)/db_name?charset=utf8"

2、準備資料庫

準備好資料庫。

3、查詢

package main

import

("database/sql"

"fmt"

)func

main()

fmt.

println()

var id int

var name string

var *** string

var about string

for rows.

next()

}

4、插入、刪除、更新

func (*db) [exec]

func

(db *db)

exec

(query string

, args ...

inte***ce

)(result,

error

)

exec執行一次命令(包括查詢、刪除、更新、插入等),不返回任何執行結果。引數args表示query中的佔位引數。

db,

_:= sql.

open

("mysql"

,"root:******@tcp(127.0.0.1:3306)/study?charset=utf8"

)defer db.

close()

//defer關閉資料庫連線

query:=

"insert into stu(id, name, ***, about) values(10,'陳浩南','男','物理')"

db.exec

(query)

//執行語句

5、事務

sql也支援事務,包括提交、回滾等。

tx,

_:= db.

begin()

//事務

tx.exec

("delete from stu where id=19"

) tx.

commit()

//提交

go語言標準庫中提供的兩個包。

1、sql/driver包

driver包定義了應被資料庫驅動實現的介面,這些介面會被sql包使用。

驅動介面

type driver inte***ce

連線介面

type conn inte***ce

執行介面

type execer inte***ce

查詢介面

type queryer inte***ce

事務介面

type tx inte***ce

2、sql包

sql包提供了保證sql或類sql資料庫的泛用介面。

提供了一些實現了driver包下的介面的結構體型別。

type db struct

方法有:

exec()

/query()

/close

()等

type rows struct

方法有:

scan()

/next()

/columns

()等

Go語言學習筆記十五 Go語言map的基本操作

基本操作都在以下 裡面啦 1 package main 23 import fmt 45 func main 26fmt.println b 27 b beijing 11111 28 b guangzhou 33333 29 b shenzhen 444444 30fmt.println b 31...

Go語言之Map的使用(十五)

map是go的內建型別,它使用鍵值對的方式來檢索值 乙個鍵對應乙個值 可以使用內建函式 make 也可以使用 map 關鍵字來定義 map 宣告變數,預設 map 是 nil var map variable map key data type value data type 使用 make 函式 ...

go語言 Socket程式設計 二十五

1.socket是什麼 socket起源於unix,而unix基本哲學之一就是 一切皆檔案 都可以用 開啟open 讀寫write read 關閉close 模式來操作。socket就是該模式的乙個實現,網路的socket資料傳輸是一種特殊的i o,socket也是一種檔案描述符。socket也具有...