从数据库中读取数据

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. [RN] React Native 滚动跳转到指定位置

    React Native 滚动跳转到指定位置 一.结构 <ScrollView horizontal={true} ref={(view) => { this.myScrollView = ...

  2. A1135 | 红黑树判断:审题、根据“先序遍历”和“BST树”的条件生成后序遍历、递归判断

    对A1135这题有心里阴影了,今天终于拿下AC.学习自柳神博客:https://www.liuchuo.net/archives/4099 首先读题很关键: There is a kind of ba ...

  3. LINK : fatal error LNK1181: cannot open input file 'glew32.lib' error: command 'C:\\Program Files (

    下载 库文件 参考: https://stackoverflow.com/questions/53355474/kivent-installation-fatal-error-lnk1181-cant ...

  4. SpringCloud:搭建基于Gateway的微服务网关(二)

    0.代码 https://github.com/fengdaizang/OpenAPI 1.引入相关依赖 pom文件如下: <?xml version="1.0" encod ...

  5. 歪国人整理的 2019 年 Java 开发路线图,值得参考!

      许多Java开发人员都希望通过某种Java成长路线图,来解答有关:该学习哪些技术,使用哪些工具以及框架之类的问题. 在此,我将向大家展示一张根据自己多年经验总结出的路线图.该路线图在保持简单可行的 ...

  6. 用SAS提交SAS代码

    OPTIONS NOXWAIT;%LET PATH=%STR(C:\Program Files\SAS\SAS 9.1);%LET CODEPATH=%STR(D:\001.RIPP.MODEL);% ...

  7. Python快速入门教程【转】

    第一章 Python基础知识 1.1 介绍      1.1.1 特点      Python是一种面向对象.解释型计算机程序设计语言.语法简洁清晰,强制用空白符作为语句缩进.      Python ...

  8. mysql 排序长度限制之max_length_for_sort_data以及mysql两种排序算法

    SET max_length_for_sort_data = 1024 SHOW VARIABLES LIKE '%max_length_for_sort_data%'; 查询:SELECT * FR ...

  9. EF获取当天的数据集合

    ).DefaultIfEmpty().Count(); 主要是使用了: DbFunctions.DiffDays

  10. [转]将已有项目代码加入svn版本控制

    原文链接:https://blog.csdn.net/aaroun/article/details/79074178 将已有项目代码加入svn版本控制 - TortoiseSVN入门篇Windows下 ...