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 建立資料庫.新...