1、驱动

Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接口的

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

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

2、实例代码

示例的数据库表结构如下所示,相应的建表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`)
);

看下面Go程序是如何操作数据库表数据:增删改查

package mainimport ("database/sql""fmt"_ "github.com/mattn/go-sqlite3"
)func main() {db, err := sql.Open("sqlite3", "./foo.db")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)id, err := res.LastInsertId()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)affect, err := res.RowsAffected()checkErr(err)fmt.Println(affect)//查询数据rows, err := db.Query("SELECT * FROM userinfo")checkErr(err)for rows.Next() {var uid intvar username stringvar department stringvar created stringerr = 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=?")checkErr(err)res, err = stmt.Exec(id)checkErr(err)affect, err = res.RowsAffected()checkErr(err)fmt.Println(affect)db.Close()}func checkErr(err error) {if err != nil {panic(err)}
}

我们可以看到上面的代码和MySQL例子里面的代码几乎是一模一样的,唯一改变的就是导入的驱动改变了,然后调用sql.Open是采用了SQLite的方式打开。

转载于:https://www.cnblogs.com/lvdongjie/p/9555851.html

Go语言中使用SQLite数据库相关推荐

  1. go sqlite mysql_Go语言中使用SQLite数据库

    package main import ( "database/sql" "fmt" _ "github.com/mattn/go-sqlite3&q ...

  2. sqlite学习笔记7:C语言中使用sqlite之打开数据库

    数据库的基本内容前面都已经说得差点儿相同了.接下看看如何在C语言中使用sqlite. 一 接口 sqlite3_open(const char *filename, sqlite3 **ppDb) 打 ...

  3. 在 Android 应用程序中使用 SQLite 数据库以及怎么用

    part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库.它支持 SQL 语言,而且仅仅利用非常少的内存就有非常好的性能.此外它还是开 ...

  4. python用sqlite数据库,python 中使用sqlite数据库

    sqlite3是使用文件作为数据库,它属于轻量级数据库,支持在多平台下使用. SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身.它是遵守A ...

  5. android属于数据库管理系统,详细谈谈Android系统中的SQLite数据库的应用

    数据库是按照数据结构来组织.存储和管理数据的仓库,而在信息话的社会,数据库又不单单仅限与数据的相关内容,现在数据库技术是管理信息系统.办公自动化系统.决策支持系统等各类信息系统的核心部分,而SQL是结 ...

  6. java中删除sqlite数据库语句_sqlite sql创建数据库语句

    iOS开发数据库篇-SQLite常用的函数 一.简单说明 1.打开数据库 int sqlite3_open( const char *filename, // 数据库的文件路径 sqlite3 **p ...

  7. Android中实现SQLite数据库CRUD操作的两种方式

    Android中实现SQLite数据库CRUD操作的两种方式 SQLite是一款轻量级的关系型数据库,具有运行速度.占用资源少的特点.通常只需要几百KB的内存就够了,因此特别适合在移动设备上使用.SQ ...

  8. Go语言中查询SqlServer数据库

    一.Go语言中查询MsSQL数据库: // main.go package mainimport ("database/sql""fmt""log&q ...

  9. uwp连接mysql数据库_在 UWP 应用中使用 SQLite 数据库

    在 UWP 应用中使用 SQLite 数据库Use a SQLite database in a UWP app 06/26/2020 本文内容 可以使用 SQLite 在用户设备上的轻量级数据库中存 ...

最新文章

  1. 皮一皮:你更想成为哪个身材...
  2. Qt中创建excel文件
  3. 8个字典常用的内置函数,一次性给你总结了!
  4. Android 实现多个输入框的对话框
  5. IDEA使用指南常用快捷键
  6. 【英语学习】【WOTD】sequester 释义/词源/示例
  7. Redis之-字符串类型
  8. android groovy方法,Android Gradle从入门到精通(三)Groovy快速入门指南
  9. C/C++链接过程相关
  10. 微信支付之获取code
  11. Atitit.sql where条件表达式的原理  attilax概括
  12. app测试用mysql数据库,数据库: 安装配置数据库,使用Navicat for MySQL和手机APP 连接测试...
  13. iMX8MM启动流程
  14. HTML5数据可视化第四弹:交互式地铁线路图
  15. java的excel模板下载(解决中文名乱码问题)
  16. 实数傅立叶变换和复数傅立叶变换
  17. python将两个csv文件按列合并
  18. c语言实现cgi之cgic库使用
  19. qlv转换成mp4只有声音 没有图像没有画面 解决方法
  20. 计算机组装小白,小白怎么从零开始学组装电脑?

热门文章

  1. amd的处理器能兼容idea么_AMD新一代CPU不向下兼容,究竟意味着什么?
  2. java程序利用HttpSessionListener实现统计在线人数(示例代码)
  3. OSCache操作详解+标签使用
  4. ORACLE数据库定时任务自动停止(broken)的原因分析及解决办法
  5. 【爆牙齿】说说我期待中的苹果那块板子。
  6. 修改GDAL库支持IRSP6数据
  7. 2018计算机二级c知识,2018全国计算机二级考试C语言常考知识点归纳
  8. java后台保存base64图片数据
  9. Kubernetes对象之Replication Controller(RC)和Replica Sets(RS)
  10. MFC 教程【8_MFC的进程和线程 】