Go中使用 SQLite 数据库

您所在的位置:网站首页 go数据库的使用 Go中使用 SQLite 数据库

Go中使用 SQLite 数据库

2024-03-06 11:16| 来源: 网络整理| 查看: 265

一、前言

SQLite 是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的 SQL 数据库引擎。其特点是高度便携、使用方便、结构紧凑、高效、可靠。 与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下,只要确保 SQLite 的二进制文件存在即可开始创建、连接和使用数据库。

二、使用

Go 支持 sqlite 的库也比较多,下面介绍github.com/mattn/go-sqlite3库来对SQLite3数库存

mattn/go-sqlite3基于cgo,Windows中cgo环境安装 1. 引用库

需要引用sqlite3时前面加个_,不然会编译出错。语法基本上和MySQL类似

import ( "database/sql" _ "github.com/mattn/go-sqlite3" ) 2. 打开/创建数据库

在当前目录打开my.db数据库,如果不存在,则创建一个

// 打开/创建 db, err := sql.Open("sqlite3", "./my.db") // 关闭 db.Close() 3. 创建表 table := ` CREATE TABLE IF NOT EXISTS user ( uid INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(128) NULL, created DATE NULL ); ` _, err = db.Exec(table) 创建一个user表, 表中有一个自增长的uid, 一个128位字符串的name 日期类型的创建时间 4. 插入数据 stmt, err := db.Prepare("INSERT INTO user(name, created) values(?,?)") if err != nil { panic(err) } // res 为返回结果 res, err := stmt.Exec("guoke", "2012-12-09") if err != nil { panic(err) } // 可以通过res取自动生成的id id, err := res.LastInsertId() if err != nil { panic(err) } 5. 删除数据 stmt, err = db.Prepare("delete from user where uid=?") if err != nil { panic(err) } res, err = stmt.Exec(id) if err != nil { panic(err) } 6. 更新数据 stmt, err := db.Prepare("update %s set name=? where uid=?") if stmt == nil || err != nil { panic(err) } _, err = stmt.Exec("guoke3915", 1) if err != nil { panic(err) } 7.查询数据 rows, err := db.Query("SELECT * FROM user") if err != nil { panic(err) } defer rows.Close() for rows.Next() { var uid int var name string var created time.Time err = rows.Scan(&uid, &name, &created) if err != nil { panic(err) } fmt.Println(uid) fmt.Println(name) fmt.Println(created) }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3