golang sqlite3 CRUD
package main
import (
"database/sql"
"fmt" "log" _ "github.com/mattn/go-sqlite3" // sqlite3 dirver
) // People - database fields
type People struct {
id int
name string
age int
} type appContext struct {
db *sql.DB
} func connectDB(driverName string, dbName string) (*appContext, string) {
db, err := sql.Open(driverName, dbName)
if err != nil {
return nil, err.Error()
}
if err = db.Ping(); err != nil {
return nil, err.Error()
}
return &appContext{db}, ""
} // Create
func (c *appContext) Create() {
stmt, err := c.db.Prepare("INSERT INTO users(name,age) values(?,?)")
if err != nil {
log.Fatal(err)
}
result, err := stmt.Exec("Jack", )
if err != nil {
fmt.Printf("add error: %v", err)
return
}
lastID, err := result.LastInsertId()
if err != nil {
log.Fatal(err)
}
fmt.Println("inserted id is ", lastID)
} // Read
func (c *appContext) Read() {
rows, err := c.db.Query("SELECT * FROM users")
if err != nil {
fmt.Println(err.Error())
return
}
defer rows.Close() for rows.Next() {
p := new(People)
err := rows.Scan(&p.id, &p.name, &p.age)
if err != nil {
fmt.Println(err)
}
fmt.Println(p.id, p.name, p.age)
}
} // UPDATE
func (c *appContext) Update() {
stmt, err := c.db.Prepare("UPDATE users SET age = ? WHERE id = ?")
if err != nil {
log.Fatal(err)
}
result, err := stmt.Exec(, )
if err != nil {
log.Fatal(err)
}
affectNum, err := result.RowsAffected()
if err != nil {
log.Fatal(err)
}
fmt.Println("update affect rows is ", affectNum)
} // DELETE
func (c *appContext) Delete() {
stmt, err := c.db.Prepare("DELETE FROM users WHERE id = ?")
if err != nil {
log.Fatal(err)
}
result, err := stmt.Exec()
if err != nil {
log.Fatal(err)
}
affectNum, err := result.RowsAffected()
if err != nil {
log.Fatal(err)
}
fmt.Println("delete affect rows is ", affectNum)
} // Mysqlite3 - sqlite3 CRUD
func main() {
c, err := connectDB("sqlite3", "abc.db")
if err != "" {
print(err)
} c.Create()
fmt.Println("add action done!") c.Read()
fmt.Println("get action done!") c.Update()
fmt.Println("update action done!") c.Delete()
fmt.Println("delete action done!")
}
golang sqlite3 CRUD的更多相关文章
- 我的Vue之旅 07 Axios + Golang + Sqlite3 实现简单评论机制
第三期 · 使用 Vue 3.1 + TailWind.CSS + Axios + Golang + Sqlite3 实现简单评论机制 效果图 CommentArea.vue 我们需要借助js的Dat ...
- golang postgresql CRUD
package main import ( "database/sql" "fmt" "log" _ "github.com/li ...
- golang SQLite3性能测试
SQLite是个小型的数据库,很简洁,即支持文件也支持内存,比较适合小型的独立项目,在没有网络的时候做一些复杂的关系数据存储和运算. 为了考察性能做10M(1000万)条记录的测试,测试机4CPU.8 ...
- C 扩展库 - sqlite3 API CRUD
CRUD struct student typedef struct STUDENT { unsigned int id; unsigned char name[16]; unsigned int a ...
- golang web实战之三(基于iris框架的 web小应用,数据库采用 sqlite3 )
一.效果:一个图片应用 1.可上传图片到uploads目录. 2.可浏览和评论图片(用富文本编辑器输入) 二.梳理一下相关知识: 1.iris框架(模板输出,session) 2.富文本编辑器.sql ...
- 基于Python+Sqlite3实现最简单的CRUD
一.基本描述 使用Python,熟悉sqlite3的基本操作(查插删改),以及基本数据类型.事务(ACID). 准备工作:在sqlite3的官网上下载预编译的sqlite文件(windows) ...
- golang学习笔记16 beego orm 数据库操作
golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...
- golang开发缓存组件
代码地址github:cache 花了一天时间看了下实验楼的cache组件,使用golang编写的,收获还是蛮多的,缓存组件的设计其实挺简单的,主要思路或者设计点如下: 全局struct对象:用来做缓 ...
- SQLite3 学习笔记
1.数据存储方式 Plist(NSArray\NSDictionary) Preference(偏好设置\NSUserDefaults) NSCoding(NSKeyedArchiver\NSkeye ...
随机推荐
- 洛谷P4396 [AHOI2013]作业(树套树)
题意 题目链接 Sol 为什么一堆分块呀..三维数点不应该是套路离线/可持久化+树套树么.. 亲测树状数组套权值线段树可过 复杂度\(O(nlog^2n)\),空间\(O(nlogn)\)(离线) # ...
- JPEG/PNG/GIF图片格式简析
JPEG/PNG/GIF是Web浏览器广泛支持的3种图片格式. 1.JPEG格式最适合保存照片和其他复杂图像. 2.GIF和PNG格式最适合保存logo和其他包含单色.线条.文本的简单图形. 3.JP ...
- Git 及 GitHub 使用
Git bash 的常用命令 1. pwd 查看当前所在目录 2. cd cd .. 返回上一级 cd 目录 进入对应的目录 3. ls 查看当前文件夹的内容 ...
- 浅谈对NaN的理解
1.NaN : Not a Number 不是一个数字 2.NaN 与其他数值进行比较的结果总是不相等的,包括它自身在内 3.判断是否是NaN, 方法一 :is.NaN(变量): 方法二 :Nu ...
- IE9+下如何让input的placeholder样式生效
:-ms-input-placeholder.el-input__inner { color: #97a8be;}:-ms-input-placeholder.el-textarea__inner{ ...
- UIAutomator环境搭建
目录 下载.安装JDK&配置Java环境变量 下载.安装SDK.ADT&配置Android环境变量 下载.安装ANT&配置ANT环境变量 创建UIAutomator工程 UIA ...
- python 流程控制(while)
1,while基本语法 2,while else语句 1,while基本语法 n = 1 while n<10: print n n += 1 2,while else语句 n =10 whil ...
- Oracle EBS OPM 生产批创建事务处理
--生产批创建事物处理 --created by jenrry DECLARE p_mmti_rec mtl_transactions_interface%ROWTYPE; p_mmli_tbl gm ...
- 无法将数据库从SINGLE_USER模式切换回MULTI_USER模式(Error 5064),及查找SQL Server数据库中用户spid(非SQL Server系统spid)的方法
今天公司SQL Server数据库无意间变为SINGLE_USER模式了,而且使用如下语句切换回MULTI_USER失败: ALTER DATABASE [MyDB] SET MULTI_USER W ...
- Jboss7或者wildfly部署war包的问题
如果在Jboss7或者wildfly中部署war包是遇到类似如下错误: "{"JBAS014671: Failed services" => {"jbos ...