Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
build-web-application-with-golang
提交
f95509fc
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,发现更多精彩内容 >>
提交
f95509fc
编写于
6月 10, 2017
作者:
V
vCaesar
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Format and remove 05.3.md spaces
上级
ff3ac944
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
68 addition
and
68 deletion
+68
-68
zh/05.3.md
zh/05.3.md
+68
-68
未找到文件。
zh/05.3.md
浏览文件 @
f95509fc
...
...
@@ -15,97 +15,97 @@ Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接
示例的数据库表结构如下所示,相应的建表SQL:
```
sql
CREATE
TABLE
`userinfo`
(
`uid`
INTEGER
PRIMARY
KEY
AUTOINCREMENT
,
`username`
VARCHAR
(
64
)
NULL
,
`departname`
VARCHAR
(
64
)
NULL
,
`created`
DATE
NULL
);
CREATE
TABLE
`userdeatail`
(
`uid`
INT
(
10
)
NULL
,
`intro`
TEXT
NULL
,
`profile`
TEXT
NULL
,
PRIMARY
KEY
(
`uid`
)
);
CREATE
TABLE
`userinfo`
(
`uid`
INTEGER
PRIMARY
KEY
AUTOINCREMENT
,
`username`
VARCHAR
(
64
)
NULL
,
`departname`
VARCHAR
(
64
)
NULL
,
`created`
DATE
NULL
);
CREATE
TABLE
`userdeatail`
(
`uid`
INT
(
10
)
NULL
,
`intro`
TEXT
NULL
,
`profile`
TEXT
NULL
,
PRIMARY
KEY
(
`uid`
)
);
```
看下面Go程序是如何操作数据库表数据:增删改查
```
Go
package main
package main
import (
"database/sql"
"fmt"
"time"
_ "github.com/mattn/go-sqlite3"
)
import (
"database/sql"
"fmt"
"time"
_ "github.com/mattn/go-sqlite3"
)
func main() {
db, err := sql.Open("sqlite3", "./foo.db")
checkErr(err)
func main() {
db, err := sql.Open("sqlite3", "./foo.db")
checkErr(err)
//插入数据
stmt, err := db.Prepare("INSERT INTO userinfo(username, departname, created) values(?,?,?)")
checkErr(err)
//插入数据
stmt, err := db.Prepare("INSERT INTO userinfo(username, departname, created) values(?,?,?)")
checkErr(err)
res, err := stmt.Exec("astaxie", "研发部门", "2012-12-09")
checkErr(err)
res, err := stmt.Exec("astaxie", "研发部门", "2012-12-09")
checkErr(err)
id, err := res.LastInsertId()
checkErr(err)
id, err := res.LastInsertId()
checkErr(err)
fmt.Println(id)
//更新数据
stmt, err = db.Prepare("update userinfo set username=? where uid=?")
checkErr(err)
fmt.Println(id)
//更新数据
stmt, err = db.Prepare("update userinfo set username=? where uid=?")
checkErr(err)
res, err = stmt.Exec("astaxieupdate", id)
checkErr(err)
res, err = stmt.Exec("astaxieupdate", id)
checkErr(err)
affect, err := res.RowsAffected()
checkErr(err)
affect, err := res.RowsAffected()
checkErr(err)
fmt.Println(affect)
fmt.Println(affect)
//查询数据
rows, err := db.Query("SELECT * FROM userinfo")
checkErr(err)
//查询数据
rows, err := db.Query("SELECT * FROM userinfo")
checkErr(err)
for rows.Next() {
var uid int
var username string
var department string
var created time.Time
err = rows.Scan(&uid, &username, &department, &created)
checkErr(err)
fmt.Println(uid)
fmt.Println(username)
fmt.Println(department)
fmt.Println(created)
}
//删除数据
stmt, err = db.Prepare("delete from userinfo where uid=?")
for rows.Next() {
var uid int
var username string
var department string
var created time.Time
err = rows.Scan(&uid, &username, &department, &created)
checkErr(err)
fmt.Println(uid)
fmt.Println(username)
fmt.Println(department)
fmt.Println(created)
}
res, err = stmt.Exec(id)
checkErr(err)
//删除数据
stmt, err = db.Prepare("delete from userinfo where uid=?")
checkErr(err)
affect, err = res.RowsAffected(
)
checkErr(err)
res, err = stmt.Exec(id
)
checkErr(err)
fmt.Println(affect)
affect, err = res.RowsAffected()
checkErr(err)
db.Close(
)
fmt.Println(affect
)
}
db.Close()
}
func checkErr(err error) {
if err != nil {
panic(err)
}
func checkErr(err error) {
if err != nil {
panic(err)
}
}
```
我们可以看到上面的代码和MySQL例子里面的代码几乎是一模一样的,唯一改变的就是导入的驱动改变了,然后调用
`sql.Open`
是采用了SQLite的方式打开。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录