Skip to content

Commit 57fcd45

Browse files
committedSep 12, 2012
修复统一err
1 parent 403e7e4 commit 57fcd45

File tree

4 files changed

+74
-73
lines changed

4 files changed

+74
-73
lines changed
 

‎5.1.md

+12-12
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ Close函数关闭当前的连接,以及执行释放连接拥有的资源等清
6767

6868
Begin函数返回一个代表事务处理的Tx,通过它你可以进行查询,更新等操作,或者对事务进行回滚、递交。
6969

70-
##drive.Stmt
70+
##driver.Stmt
7171
Stmt是一种准备好的状态,和Conn相关联,而且是只能应用于一个goroutine中,不能应用在多个goroutine中。
7272

7373
type Stmt interface {
@@ -86,7 +86,7 @@ Exec函数执行Prepare准备好的sql,传入参数执行update/insert等操
8686
Query函数执行Prepare准备好的sql,传入需要的参数执行select操作,返回Rows结果集
8787

8888

89-
##drive.Tx
89+
##driver.Tx
9090
事务处理一般就两个过程,递交或者回滚。数据库驱动里面也只需要实现这两个函数就可以
9191

9292
type Tx interface {
@@ -96,7 +96,7 @@ Query函数执行Prepare准备好的sql,传入需要的参数执行select操
9696

9797
这两个函数一个用来递交一个事务,一个用来回滚事务。
9898

99-
##drive.Execer
99+
##driver.Execer
100100
这是一个Conn可选择实现的接口
101101

102102
type Execer interface {
@@ -105,7 +105,7 @@ Query函数执行Prepare准备好的sql,传入需要的参数执行select操
105105

106106
如果这个接口没有定义,那么在调用DB.Exec,就会首先调用Prepare返回Stmt,然后执行Stmt的Exec,然后关闭Stmt。
107107

108-
##drive.Result
108+
##driver.Result
109109
这个是执行Update/Insert等操作返回的结果接口定义
110110

111111
type Result interface {
@@ -117,7 +117,7 @@ LastInsertId函数返回由数据库执行插入操作得到的自动增长ID号
117117

118118
RowsAffected函数返回query操作影响的数据条目数。
119119

120-
##drive.Rows
120+
##driver.Rows
121121
Rows是执行查询返回的结果集接口定义
122122

123123
type Rows interface {
@@ -133,10 +133,10 @@ Columns函数返回查询数据库表的字段信息,这个返回的slice和
133133

134134
Close函数用来关闭Rows迭代器。
135135

136-
Next函数用来返回下一条数据,把数据赋值给dest。dest里面的元素必须是drive.Value的值除了string,返回的数据里面所有的string都必须要转换成[]byte。如果最后没数据了,Next函数最后返回io.EOF。
136+
Next函数用来返回下一条数据,把数据赋值给dest。dest里面的元素必须是driver.Value的值除了string,返回的数据里面所有的string都必须要转换成[]byte。如果最后没数据了,Next函数最后返回io.EOF。
137137

138138

139-
##drive.RowsAffected
139+
##driver.RowsAffected
140140
RowsAffested其实就是一个int64的别名,但是他实现了Result接口,用来底层实现Result的表示方式
141141

142142
type RowsAffected int64
@@ -145,7 +145,7 @@ RowsAffested其实就是一个int64的别名,但是他实现了Result接口,
145145

146146
func (v RowsAffected) RowsAffected() (int64, error)
147147

148-
##drive.Value
148+
##driver.Value
149149
Value其实就是一个空接口,他可以容纳任何的数据
150150

151151
type Value interface{}
@@ -159,7 +159,7 @@ Value的值必须所有的驱动里面控制的,Value要么是nil,要么是
159159
string [*]除了Rows.Next返回的不能是string.
160160
time.Time
161161

162-
##drive.ValueConverter
162+
##driver.ValueConverter
163163
ValueConverter接口定义了如何把一个普通的值转化成driver.Value的接口
164164

165165
type ValueConverter interface {
@@ -168,11 +168,11 @@ ValueConverter接口定义了如何把一个普通的值转化成driver.Value的
168168

169169
在开发的数据库驱动包里面实现这个接口的函数在很多地方会使用到,这个ValueConverter有很多好处:
170170

171-
- 转化drive.value到数据库表相应的字段,例如int64的数据如何转化成数据库表uint16字段
172-
- 把数据库查询结果转化成drive.Value值
171+
- 转化driver.value到数据库表相应的字段,例如int64的数据如何转化成数据库表uint16字段
172+
- 把数据库查询结果转化成driver.Value值
173173
- 在scan函数里面如何把dirve.Value值转化成用户定义的值
174174

175-
##drive.Valuer
175+
##driver.Valuer
176176
Valuer接口定义了返回一个driver.Value的方式
177177

178178
type Valuer interface {

‎5.2.md

+22-21
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持data
3434

3535
如下示例将示范如何使用database/sql接口对数据库表进行增删改查操作
3636

37-
package main
37+
package main
3838

3939
import (
4040
_ "code.google.com/p/go-mysql-driver/mysql"
@@ -48,31 +48,31 @@ Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持data
4848
checkErr(err)
4949

5050
//插入数据
51-
stmt, errs := db.Prepare("INSERT userinfo SET username=?,departname=?,created=?")
52-
checkErr(errs)
51+
stmt, err := db.Prepare("INSERT userinfo SET username=?,departname=?,created=?")
52+
checkErr(err)
5353

54-
res, errres := stmt.Exec("astaxie", "研发部门", "2012-12-09")
55-
checkErr(errres)
54+
res, err := stmt.Exec("astaxie", "研发部门", "2012-12-09")
55+
checkErr(err)
5656

57-
id, errid := res.LastInsertId()
58-
checkErr(errid)
57+
id, err := res.LastInsertId()
58+
checkErr(err)
5959

6060
fmt.Println(id)
6161
//更新数据
62-
stmt, errs = db.Prepare("update userinfo set username=? where uid=?")
63-
checkErr(errs)
62+
stmt, err = db.Prepare("update userinfo set username=? where uid=?")
63+
checkErr(err)
6464

65-
res, errres = stmt.Exec("astaxieupdate", id)
66-
checkErr(errres)
65+
res, err = stmt.Exec("astaxieupdate", id)
66+
checkErr(err)
6767

68-
affect, erraff := res.RowsAffected()
69-
checkErr(erraff)
68+
affect, err := res.RowsAffected()
69+
checkErr(err)
7070

7171
fmt.Println(affect)
7272

7373
//查询数据
74-
rows, errrow := db.Query("SELECT * FROM userinfo")
75-
checkErr(errrow)
74+
rows, err := db.Query("SELECT * FROM userinfo")
75+
checkErr(err)
7676

7777
for rows.Next() {
7878
var uid int
@@ -88,14 +88,14 @@ Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持data
8888
}
8989

9090
//删除数据
91-
stmt, errrow = db.Prepare("delete from userinfo where uid=?")
92-
checkErr(errrow)
91+
stmt, err = db.Prepare("delete from userinfo where uid=?")
92+
checkErr(err)
9393

94-
res, errres = stmt.Exec(id)
95-
checkErr(errres)
94+
res, err = stmt.Exec(id)
95+
checkErr(err)
9696

97-
affect, erraff = res.RowsAffected()
98-
checkErr(erraff)
97+
affect, err = res.RowsAffected()
98+
checkErr(err)
9999

100100
fmt.Println(affect)
101101

@@ -107,6 +107,7 @@ Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持data
107107
}
108108
}
109109

110+
110111
通过上面的代码我们可以看出,Go操作Mysql数据库是很方便的。
111112

112113
关键的几个函数我解释一下:

‎5.3.md

+20-20
Original file line numberDiff line numberDiff line change
@@ -43,31 +43,31 @@ Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接
4343
checkErr(err)
4444

4545
//插入数据
46-
stmt, errs := db.Prepare("INSERT userinfo SET username=?,departname=?,created=?")
47-
checkErr(errs)
46+
stmt, err := db.Prepare("INSERT userinfo SET username=?,departname=?,created=?")
47+
checkErr(err)
4848

49-
res, errres := stmt.Exec("astaxie", "研发部门", "2012-12-09")
50-
checkErr(errres)
49+
res, err := stmt.Exec("astaxie", "研发部门", "2012-12-09")
50+
checkErr(err)
5151

52-
id, errid := res.LastInsertId()
53-
checkErr(errid)
52+
id, err := res.LastInsertId()
53+
checkErr(err)
5454

5555
fmt.Println(id)
5656
//更新数据
57-
stmt, errs = db.Prepare("update userinfo set username=? where uid=?")
58-
checkErr(errs)
57+
stmt, err = db.Prepare("update userinfo set username=? where uid=?")
58+
checkErr(err)
5959

60-
res, errres = stmt.Exec("astaxieupdate", id)
61-
checkErr(errres)
60+
res, err = stmt.Exec("astaxieupdate", id)
61+
checkErr(err)
6262

63-
affect, erraff := res.RowsAffected()
64-
checkErr(erraff)
63+
affect, err := res.RowsAffected()
64+
checkErr(err)
6565

6666
fmt.Println(affect)
6767

6868
//查询数据
69-
rows, errrow := db.Query("SELECT * FROM userinfo")
70-
checkErr(errrow)
69+
rows, err := db.Query("SELECT * FROM userinfo")
70+
checkErr(err)
7171

7272
for rows.Next() {
7373
var uid int
@@ -83,14 +83,14 @@ Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接
8383
}
8484

8585
//删除数据
86-
stmt, errrow = db.Prepare("delete from userinfo where uid=?")
87-
checkErr(errrow)
86+
stmt, err = db.Prepare("delete from userinfo where uid=?")
87+
checkErr(err)
8888

89-
res, errres = stmt.Exec(id)
90-
checkErr(errres)
89+
res, err = stmt.Exec(id)
90+
checkErr(err)
9191

92-
affect, erraff = res.RowsAffected()
93-
checkErr(erraff)
92+
affect, err = res.RowsAffected()
93+
checkErr(err)
9494

9595
fmt.Println(affect)
9696

‎5.4.md

+20-20
Original file line numberDiff line numberDiff line change
@@ -51,33 +51,33 @@ package main
5151
checkErr(err)
5252

5353
//插入数据
54-
stmt, errs := db.Prepare("INSERT INTO userinfo(username,departname,created) VALUES($1,$2,$3) RETURNING uid")
55-
checkErr(errs)
54+
stmt, err := db.Prepare("INSERT INTO userinfo(username,departname,created) VALUES($1,$2,$3) RETURNING uid")
55+
checkErr(err)
5656

57-
res, errres := stmt.Exec("astaxie", "研发部门", "2012-12-09")
58-
checkErr(errres)
57+
res, err := stmt.Exec("astaxie", "研发部门", "2012-12-09")
58+
checkErr(err)
5959

6060
//pg不支持这个函数,因为他没有类似MySQL的自增ID
61-
id, errid := res.LastInsertId()
62-
checkErr(errid)
61+
id, err := res.LastInsertId()
62+
checkErr(err)
6363

6464
fmt.Println(id)
6565

6666
//更新数据
67-
stmt, errs = db.Prepare("update userinfo set username=$1 where uid=$2")
68-
checkErr(errs)
67+
stmt, err = db.Prepare("update userinfo set username=$1 where uid=$2")
68+
checkErr(err)
6969

70-
res, errres = stmt.Exec("astaxieupdate", 1)
71-
checkErr(errres)
70+
res, err = stmt.Exec("astaxieupdate", 1)
71+
checkErr(err)
7272

73-
affect, erraff := res.RowsAffected()
74-
checkErr(erraff)
73+
affect, err := res.RowsAffected()
74+
checkErr(err)
7575

7676
fmt.Println(affect)
7777

7878
//查询数据
79-
rows, errrow := db.Query("SELECT * FROM userinfo")
80-
checkErr(errrow)
79+
rows, err := db.Query("SELECT * FROM userinfo")
80+
checkErr(err)
8181

8282
for rows.Next() {
8383
var uid int
@@ -93,14 +93,14 @@ package main
9393
}
9494

9595
//删除数据
96-
stmt, errrow = db.Prepare("delete from userinfo where uid=$1")
97-
checkErr(errrow)
96+
stmt, err = db.Prepare("delete from userinfo where uid=$1")
97+
checkErr(err)
9898

99-
res, errres = stmt.Exec(1)
100-
checkErr(errres)
99+
res, err = stmt.Exec(1)
100+
checkErr(err)
101101

102-
affect, erraff = res.RowsAffected()
103-
checkErr(erraff)
102+
affect, err = res.RowsAffected()
103+
checkErr(err)
104104

105105
fmt.Println(affect)
106106

0 commit comments

Comments
 (0)
Please sign in to comment.