Golang使用sqlx包實現對mysql的操作

2021-09-24 15:00:21 字數 2183 閱讀 5617

要sqlx包,需要先安裝

//連線資料庫

func init()

}type member struct

func select()

fmt.println(info)

//查詢多條

var list member

err=db.select(&list,"select username,money,birthday from member")

if err != nil

fmt.println(list)

}func insert()

id,err:=result.lastinsertid()

if err != nil

fmt.println(id)

}func update()

rows,err:=result.rowsaffected()

if err != nil

fmt.println(rows)

}func delete()

rows,err:=result.rowsaffected()

if err != nil

fmt.println(rows)

}func transaction()

defer cleartransaction(db) //如果出現了異常,導致沒有 commit和rollback,可以用來收尾

//1、

result,err:=db.exec("update member set money=money+3 where id=?",1)

if err!=nil

num,err:=result.rowsaffected()

if err != nil

fmt.println(num)

//2、

result,err=db.exec("update member set money=money-3 where id=?",2)

if err!=nil

num,err=result.rowsaffected()

if err != nil

db.commit()

}//事務回滾

func cleartransaction(tx *sql.tx)

}func main()

create table `member` (

`id` int(11) unsigned not null auto_increment,

`username` varchar(50) collate utf8mb4_unicode_ci not null,

`money` decimal(10,2) unsigned not null,

`birthday` date default null,

`created_at` int(11) unsigned not null,

primary key (`id`)

) engine=innodb auto_increment=7 default charset=utf8mb4 collate=utf8mb4_unicode_ci comment='使用者表';

insert into `test`.`member` (`id`, `username`, `money`, `birthday`, `created_at`) values ('1', 'mrtwenty', '130.00', '2019-06-19', '1223');

insert into `test`.`member` (`id`, `username`, `money`, `birthday`, `created_at`) values ('2', 'zhao', '80.00', null, '2323');

sqlx是基於標準庫database/sql的擴充套件

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

mysql 連線 連線 func initdb err error err db.ping 嘗試連線資料庫 驗證賬號密碼 if err nil 設定連線池中最大的連線數 設定連線池中的最大閒置連線數 return crud type user struct 單行查詢 func queryone id...

golang官方rpc包的使用

rpc remote rrocedure call,遠端過程呼叫 是乙個計算機通訊協議。rpc協議假定某些傳輸協議的存在,如tcp和udp,為通訊程式之間攜帶資訊資料。在osi網路通訊模型中,rpc跨越了傳輸層和應用層。rpc採用c s模式,請求程式就是乙個客戶機,而服務提供程式就是乙個伺服器。首先...

Golang 閉包的簡單使用

基本介紹 示例package main import fmt func main func add func int int 網上有乙個閉包的最佳實踐,抄來用一下.package main import fmt strings func main func makesuffix suffix str...