从数据库中读取数据

http://sqlitebrowser.org/下载sqlite3可视化工具,在本main.go同目录下创建personal.db数据库,创建表如下:

package main

import (
"database/sql"
"fmt" _ "github.com/mattn/go-sqlite3"
)
// 用struct类型将来自SQL数据库的数据映射到内存中的对象
type Profile struct {
ProfileId int
FirstName string
LastName string
Age int
} func main() {
db, err := sql.Open("sqlite3", "./personal.db")
checkError(err)
var profile Profile
// Query可以使用参数
rows, err := db.Query("select ProfileId, FirstName, LastName, Age from Profile where FirstName = ? and LastName = ?", "Tarik", "Guney")
checkError(err)
for rows.Next() {
err := rows.Scan(&profile.ProfileId, &profile.FirstName, &profile.LastName, &profile.Age)
checkError(err)
fmt.Println(profile)
}
rows.Close()
db.Close()
} func checkError(err error) {
if err != nil {
panic(err)
}
}

将数据插入数据库

package main

import (
_ "github.com/mattn/go-sqlite3"
"database/sql"
"fmt"
) type Profile struct{
ProfileId int
FirstName string
LastName string
Age int
} func main(){
db, err := sql.Open("sqlite3", "./personal.db")
checkError(err)
/* 更新数据库数据
statement, err := db.Prepare("update Profile set FirstName = ? where ProfileId = ?")
checkError(err)
statement.Exec("Martha", 5)
*/
statement, err := db.Prepare("insert into Profile (FirstName, LastName, Age) values(?,?,?)")
checkError(err)
statement.Exec("Jessica", "McArthur", 30)
/* 删除数据库数据
statement ,err := db.Prepare("delete from Profile where ProfileId = ?")
checkError(err)
statement.Exec(3)
*/
var profile Profile
rows, err := db.Query("select ProfileId, FirstName, LastName, Age from Profile")
checkError(err)
for rows.Next(){
err := rows.Scan(&profile.ProfileId, &profile.FirstName, &profile.LastName, &profile.Age)
checkError(err)
fmt.Println(profile)
}
rows.Close()
db.Close()
} func checkError(err error) {
if (err != nil) {
panic(err)
}
}

Go基础编程实践(十)—— 数据库的更多相关文章

  1. Go基础编程实践(九)—— 网络编程

    下载网页 package main import ( "io/ioutil" "net/http" "fmt" ) func main() ...

  2. Go基础编程实践(八)—— 系统编程

    捕捉信号 // 运行此程序,控制台将打印"Waiting for signal" // 按Ctrl + C 发送信号以关闭程序,将发生中断 // 随后控制台依次打印"Si ...

  3. Go基础编程实践(七)—— 并发

    同时运行多个函数 观察常规代码和并发代码的输出顺序. // 常规代码,顺序执行,依次输出 package main import ( "fmt" "time" ...

  4. Go基础编程实践(六)—— 文件

    检查文件是否存在 在此程序同目录下创建log.txt文件,以检测. package main import ( "os" "fmt" ) func main() ...

  5. Go基础编程实践(五)—— 错误和日志

    自定义错误类型 Go中可以使用errors.New()创建错误信息,也可以通过创建自定义错误类型来满足需求.error是一个接口类型,所有实现该接口的类型都可以当作一个错误类型. // error类型 ...

  6. Go基础编程实践(四)—— 数组和map

    数组去重 package main import "fmt" func main(){ intSlice := []int{1,5,5,5,5,7,8,6,6, 6} fmt.Pr ...

  7. Go基础编程实践(三)—— 日期和时间

    日期和时间 package main import ( "fmt" "time" ) func main() { // 获取当前时间 current := ti ...

  8. Go基础编程实践(二)—— 类型转换

    bool to string strconv包的FormatBool函数用于将bool转为string package main import ( "fmt" "strc ...

  9. Go基础编程实践(一)—— 操作字符串

    修剪空格 strings包中的TrimSpace函数用于去掉字符串首尾的空格. package main import ( "fmt" "strings" ) ...

随机推荐

  1. [Java] key

    Z2VueW1vJTIwJTI2JTI2JTI2JTIwMTYzJTNBJTBBdXNyJTIwLSUyMHd1a29uZ3N1bjEyMzQlMjAlMjMlMjAxNjMuc3VmZml4JTIw ...

  2. 洛谷p2330繁忙的都市题解

    题面 根据题意来分析, 要求出你选了几条路, 最小生成树是能解的, 那么就直接输出n - 1条路即可, 至于最大值则走一遍最小生成树求出即可 这里提供最小生成树的两种方法 1. 克鲁斯卡尔 克鲁斯卡尔 ...

  3. 中国大学生计算机系统与程序设计竞赛 CCF-CCSP-2017 串行调度(serial)

    串行调度(serial) 除等价条件, 根据题意设置限制条件,然后求字典序最小拓扑序. 简洁版 #include<bits/stdc++.h> using namespace std; ; ...

  4. 2018传智黑马Python人工智能视频教程(基础+就业+面试)

    2018传智黑马Python人工智能视频教程(基础+就业+面试) 2018传智黑马Python人工智能视频教程(基础+就业+面试) 2018传智黑马Python人工智能视频教程(基础+就业+面试) 下 ...

  5. 应用Synopsys Synplify 综合的注意一个问题

    在Xilinx ISE中使用Synopsys Synplify综合时,注意约束文件*.ucf需在当前工程的文件夹下.不要将其它文件夹下的同名文件的约束当成当前工程下文件的约束.

  6. yarn一些最佳配置

    合理设置队列名 mapreduce.job.queuename设置队列名map读取时进行小文件整合 mapreduce.input.fileinputformat.split.minsize mapr ...

  7. IO多路复用之select poll epoll

    参考文档: http://blog.csdn.net/tennysonsky/article/details/45745887 select(),poll(),epoll()都是I/O多路复用的机制. ...

  8. 【Gamma阶段】第四次Scrum Meeting

    冰多多团队-Gamma阶段第四次Scrum会议 工作情况 团队成员 已完成任务 待完成任务 卓培锦 修改可移动button以及button手感反馈优化 编辑器风格切换(夜间模式) 牛雅哲 修复bug并 ...

  9. salt-master命令详解

    **salt-master命令** 命令行官网学习网站:http://docs.saltstack.cn/ref/cli/index.html salt salt-call salt-cp salt- ...

  10. [.NET逆向] [入门级]de4dot参数详解

    为了避免被0xd4d(de4dot作者)认为是"N00bUser"为了认识到Some of the advanced options may be incompatible, ca ...