mirror of
https://github.com/chai2010/advanced-go-programming-book.git
synced 2025-05-24 20:52:22 +00:00
Update ch5-05-database.md
This commit is contained in:
parent
27b0d2ede9
commit
085c9c7058
@ -60,7 +60,7 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
// db 是一个 sql.DB 类型的对象
|
// db 是一个 sql.DB 类型的对象
|
||||||
// 该对象线程安全,且内部已包含了一个连接池
|
// 该对象线程安全,且内部已包含了一个连接池
|
||||||
// 连接池的选项可以在 sql.Open 中设置,这里为了简单省略了
|
// 连接池的选项可以在 sql.DB 的方法中设置,这里为了简单省略了
|
||||||
db, err := sql.Open("mysql",
|
db, err := sql.Open("mysql",
|
||||||
"user:password@tcp(127.0.0.1:3306)/hello")
|
"user:password@tcp(127.0.0.1:3306)/hello")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -79,7 +79,8 @@ func main() {
|
|||||||
|
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
|
|
||||||
// 必须要把 rows 里的内容读完,否则连接永远不会释放
|
// 必须要把 rows 里的内容读完,或者显式调用 Close() 方法,
|
||||||
|
// 否则在 defer 的 rows.Close() 执行之前,连接永远不会释放
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
err := rows.Scan(&id, &name)
|
err := rows.Scan(&id, &name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user