Skip to content

Commit 403e7e4

Browse files
committed
修改一些字句
1 parent edbda42 commit 403e7e4

File tree

3 files changed

+17
-15
lines changed

3 files changed

+17
-15
lines changed

5.2.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
#5.2使用MySQL数据库
2-
目前Internet上流行的网站构架方式是LAMP,MySQL数据库是其中的标配之一,MySQL作为数据库,它是免费的、开源的、而且使用起来非常的方便。所以目前很多的Web开发都采用MySQL作为后端的数据库存储
2+
目前Internet上流行的网站构架方式是LAMP,其中的M即MySQL, 作为数据库,MySQL以免费、开源、使用方便为优势成为了很多Web开发的后端数据库存储引擎
33

44
##MySQL驱动
5-
Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口
5+
Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种:
66

77
- http://code.google.com/p/go-mysql-driver/ 支持database/sql,全部采用go写。
88
- https://github.com/ziutek/mymysql 支持database/sql,也支持自定义的接口,全部采用go写。
99
- https://github.com/Philio/GoMySQL 不支持database/sql,自定义接口,全部采用go写。
1010

11-
上面三个数据库驱动是目前使用率最高的库,我接下来的例子主要采用第一个为主(我目前项目中也是采用第一个驱动来写),也推荐大家采用第一个驱动,主要理由:
11+
接下来的例子我主要以第一个驱动为例(我目前项目中也是采用它来驱动),也推荐大家采用它,主要理由:
1212

13-
- 目前这个驱动比较新,维护的比较好
13+
- 这个驱动比较新,维护的比较好
1414
- 完全支持database/sql接口
15-
- 支持keepalive,保持长连接,虽然星星fork了mymysql也支持keepalive,但是不是线程安全的,这个从底层就支持了keepalive。
15+
- 支持keepalive,保持长连接,虽然[星星](http://www.mikespook.com)fork的mymysql也支持keepalive,但不是线程安全的,这个从底层就支持了keepalive。
1616

1717
##示例代码
18-
接下来的几个小节里面我们都采用同一个数据库表结构,我们新建一个数据库test,新建用户表userinfo,关联用户信息表userdetail。
18+
接下来的几个小节里面我们都将采用同一个数据库表结构:数据库test,用户表userinfo,关联用户信息表userdetail。
1919

2020
CREATE TABLE `userinfo` (
2121
`uid` INT(10) NOT NULL AUTO_INCREMENT,
@@ -32,7 +32,7 @@ Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持data
3232
PRIMARY KEY (`uid`)
3333
)
3434

35-
看下面这个Go如何操作数据库表数据:增删改查
35+
如下示例将示范如何使用database/sql接口对数据库表进行增删改查操作
3636

3737
package main
3838

5.3.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ SQLite 是一个开源的嵌入式关系数据库,实现自包容、零配置
55
##驱动
66
Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接口的
77

8-
-https://github.com/mattn/go-sqlite3 支持database/sql接口,基于cgo写的
9-
-https://github.com/feyeleanor/gosqlite3 不支持database/sql接口,基于cgo写的
10-
-https://github.com/phf/go-sqlite3 不支持database/sql接口,基于cgo写的
8+
- https://github.com/mattn/go-sqlite3 支持database/sql接口,基于cgo(关于cgo的知识请参看官方文档或者本书后面的章节)写的
9+
- https://github.com/feyeleanor/gosqlite3 不支持database/sql接口,基于cgo写的
10+
- https://github.com/phf/go-sqlite3 不支持database/sql接口,基于cgo写的
1111

12-
我们看到目前支持database/sql的SQLite数据库驱动只有第一个,我目前采用的也是第一个驱动进行开发的。采用标准接口有利于以后出现更好的驱动的时候做迁移。
12+
目前支持database/sql的SQLite数据库驱动只有第一个,我目前也是采用它来开发项目的。采用标准接口有利于以后出现更好的驱动的时候做迁移。
1313

1414
##实例代码
1515
示例的数据库表结构如下所示,相应的建表SQL:

5.4.md

+6-4
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,17 @@ PostgreSQL 是一个自由的对象-关系数据库服务器(数据库管理系
44

55
PostgreSQL和MySQL比较,它更加庞大一点,因为它是用来替代Oracle而设计的。所以在企业应用中采用PostgreSQL是一个明智的选择。
66

7-
现在MySQL被Oracle收购之后,有传闻Oracle正在逐步的封闭MySQL,也许将来我们会选择PostgreSQL作为我们后端数据库
7+
现在MySQL被Oracle收购之后,有传闻Oracle正在逐步的封闭MySQL,,鉴于此,将来我们也许会选择PostgreSQL而不是MySQL作为项目的后端数据库
88

99
##驱动
10-
Go实现的支持PostgreSQL的驱动还是挺多的,发现国外很多人使用这个数据库
10+
Go实现的支持PostgreSQL的驱动也很多,因为国外很多人在开发中使用了这个数据库
1111

1212
- https://github.com/bmizerany/pq 支持database/sql驱动,纯Go写的
1313
- https://github.com/jbarham/gopgsqldriver 支持database/sql驱动,纯Go写的
1414
- https://github.com/lxn/go-pgsql 支持database/sql驱动,纯Go写的
1515

16-
这里演示我采用了第一个驱动,这个库目前在Go里面使用的人多,在github上也比较活跃。
16+
在下面的示例中我采用了第一个驱动,因为它目前使用的人最多,在github上也比较活跃。
17+
1718
##实例代码
1819
数据库建表语句:
1920

@@ -111,8 +112,9 @@ package main
111112
}
112113
}
113114

115+
从上面的代码我们可以看到,PostgreSQL是通过`$1`,`$2`这种方式来指定要传递的参数,而不是MySQL中的`?`,另外在sql.Open中的dsn信息的格式也与MySQL的驱动中的dsn格式不一样,所以在使用时请注意它们的差异。
114116

115-
上面的代码我们可以看到,PostgreSQL传递参数是通过`$1`,`$2`这种方式来指定要传递的参数,而不是MySQL中的`?`,所以在处理的时候稍微有点不一样。还有pg不支持LastInsertId函数,因为PostgreSQL内部没有实现类似MySQL的自增ID返回,其他的代码几乎是一模一样。
117+
还有pg不支持LastInsertId函数,因为PostgreSQL内部没有实现类似MySQL的自增ID返回,其他的代码几乎是一模一样。
116118

117119
## links
118120
* [目录](<preface.md>)

0 commit comments

Comments
 (0)