Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
build-web-application-with-golang
提交
ba5d160a
B
build-web-application-with-golang
项目概览
OpenDocCN
/
build-web-application-with-golang
通知
2
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
build-web-application-with-golang
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ba5d160a
编写于
12月 09, 2016
作者:
V
vCaesar
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix SQL Error
上级
8d7accd7
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
18 addition
and
7 deletion
+18
-7
zh/05.2.md
zh/05.2.md
+4
-2
zh/05.3.md
zh/05.3.md
+2
-1
zh/05.4.md
zh/05.4.md
+12
-4
未找到文件。
zh/05.2.md
浏览文件 @
ba5d160a
...
...
@@ -23,7 +23,7 @@ Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持data
`departname` VARCHAR(64) NULL DEFAULT NULL,
`created` DATE NULL DEFAULT NULL,
PRIMARY KEY (`uid`)
)
)
;
CREATE TABLE `userdetail` (
`uid` INT(10) NOT NULL DEFAULT '0',
...
...
@@ -33,6 +33,7 @@ Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持data
)
如下示例将示范如何使用database/sql接口对数据库表进行增删改查操作
```
Go
package main
...
...
@@ -108,7 +109,8 @@ Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持data
panic(err)
}
}
```
通过上面的代码我们可以看出,Go操作Mysql数据库是很方便的。
...
...
zh/05.3.md
浏览文件 @
ba5d160a
...
...
@@ -29,6 +29,7 @@ Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接
);
看下面Go程序是如何操作数据库表数据:增删改查
```
Go
package main
...
...
@@ -104,7 +105,7 @@ Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接
panic(err)
}
}
```
我们可以看到上面的代码和MySQL例子里面的代码几乎是一模一样的,唯一改变的就是导入的驱动改变了,然后调用
`sql.Open`
是采用了SQLite的方式打开。
...
...
zh/05.4.md
浏览文件 @
ba5d160a
...
...
@@ -38,12 +38,14 @@ Go实现的支持PostgreSQL的驱动也很多,因为国外很多人在开发
看下面这个Go如何操作数据库表数据:增删改查
package main
```
Go
package main
import (
"database/sql"
"fmt"
_ "
https://
github.com/lib/pq"
_ "github.com/lib/pq"
)
func main() {
...
...
@@ -58,10 +60,15 @@ package main
checkErr(err)
//pg不支持这个函数,因为他没有类似MySQL的自增ID
id, err := res.LastInsertId()
// id, err := res.LastInsertId()
// checkErr(err)
// fmt.Println(id)
var lastInsertId int
err = db.QueryRow("INSERT INTO userinfo(username,departname,created) VALUES($1,$2,$3) returning uid;", "astaxie", "研发部门", "2012-12-09").Scan(&lastInsertId)
checkErr(err)
fmt.Println("最后插入id =", lastInsertId)
fmt.Println(id)
//更新数据
stmt, err = db.Prepare("update userinfo set username=$1 where uid=$2")
...
...
@@ -113,6 +120,7 @@ package main
panic(err)
}
}
```
从上面的代码我们可以看到,PostgreSQL是通过
`$1`
,
`$2`
这种方式来指定要传递的参数,而不是MySQL中的
`?`
,另外在sql.Open中的dsn信息的格式也与MySQL的驱动中的dsn格式不一样,所以在使用时请注意它们的差异。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录