Go语言中使用SQLite数据库
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数据库相关推荐
- go sqlite mysql_Go语言中使用SQLite数据库
package main import ( "database/sql" "fmt" _ "github.com/mattn/go-sqlite3&q ...
- sqlite学习笔记7:C语言中使用sqlite之打开数据库
数据库的基本内容前面都已经说得差点儿相同了.接下看看如何在C语言中使用sqlite. 一 接口 sqlite3_open(const char *filename, sqlite3 **ppDb) 打 ...
- 在 Android 应用程序中使用 SQLite 数据库以及怎么用
part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库.它支持 SQL 语言,而且仅仅利用非常少的内存就有非常好的性能.此外它还是开 ...
- python用sqlite数据库,python 中使用sqlite数据库
sqlite3是使用文件作为数据库,它属于轻量级数据库,支持在多平台下使用. SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身.它是遵守A ...
- android属于数据库管理系统,详细谈谈Android系统中的SQLite数据库的应用
数据库是按照数据结构来组织.存储和管理数据的仓库,而在信息话的社会,数据库又不单单仅限与数据的相关内容,现在数据库技术是管理信息系统.办公自动化系统.决策支持系统等各类信息系统的核心部分,而SQL是结 ...
- java中删除sqlite数据库语句_sqlite sql创建数据库语句
iOS开发数据库篇-SQLite常用的函数 一.简单说明 1.打开数据库 int sqlite3_open( const char *filename, // 数据库的文件路径 sqlite3 **p ...
- Android中实现SQLite数据库CRUD操作的两种方式
Android中实现SQLite数据库CRUD操作的两种方式 SQLite是一款轻量级的关系型数据库,具有运行速度.占用资源少的特点.通常只需要几百KB的内存就够了,因此特别适合在移动设备上使用.SQ ...
- Go语言中查询SqlServer数据库
一.Go语言中查询MsSQL数据库: // main.go package mainimport ("database/sql""fmt""log&q ...
- uwp连接mysql数据库_在 UWP 应用中使用 SQLite 数据库
在 UWP 应用中使用 SQLite 数据库Use a SQLite database in a UWP app 06/26/2020 本文内容 可以使用 SQLite 在用户设备上的轻量级数据库中存 ...
最新文章
- 皮一皮:你更想成为哪个身材...
- Qt中创建excel文件
- 8个字典常用的内置函数,一次性给你总结了!
- Android 实现多个输入框的对话框
- IDEA使用指南常用快捷键
- 【英语学习】【WOTD】sequester 释义/词源/示例
- Redis之-字符串类型
- android groovy方法,Android Gradle从入门到精通(三)Groovy快速入门指南
- C/C++链接过程相关
- 微信支付之获取code
- Atitit.sql where条件表达式的原理 attilax概括
- app测试用mysql数据库,数据库: 安装配置数据库,使用Navicat for MySQL和手机APP 连接测试...
- iMX8MM启动流程
- HTML5数据可视化第四弹:交互式地铁线路图
- java的excel模板下载(解决中文名乱码问题)
- 实数傅立叶变换和复数傅立叶变换
- python将两个csv文件按列合并
- c语言实现cgi之cgic库使用
- qlv转换成mp4只有声音 没有图像没有画面 解决方法
- 计算机组装小白,小白怎么从零开始学组装电脑?
热门文章
- amd的处理器能兼容idea么_AMD新一代CPU不向下兼容,究竟意味着什么?
- java程序利用HttpSessionListener实现统计在线人数(示例代码)
- OSCache操作详解+标签使用
- ORACLE数据库定时任务自动停止(broken)的原因分析及解决办法
- 【爆牙齿】说说我期待中的苹果那块板子。
- 修改GDAL库支持IRSP6数据
- 2018计算机二级c知识,2018全国计算机二级考试C语言常考知识点归纳
- java后台保存base64图片数据
- Kubernetes对象之Replication Controller(RC)和Replica Sets(RS)
- MFC 教程【8_MFC的进程和线程 】