[Golang数据库专题3]Golang语言操作SQLite3进行增删改查

目录

一、SQLite3安装(linux)

1.2 在线安装

 开始安装

 目录下创建db

 执行表创建语句

 二、方案选型

 三、编写代码

3.1 代码运行环境准备

Go语言环境

SQLite3生成db

3.2 操作SQLite3 增删改查代码

 3.3 验证结果


一、SQLite3安装(linux)

SQLite是开源的嵌入式关系型数据库,实现自包容、零配置、支持事务的SQL数据库引擎。

有高度便携、使用方便、结构紧凑、高效、可靠等特点。

与其他数据库(比如Mysql)不同,SQLite安装与运行都很简单,确保SQLite的二进制文件存在就可以创建、连接和使用数据库。其安装方式有以下:

  • 联网直接安装,sudo apt-get install sqlite3
  • 离线安装
  • docker镜像安装

1.2 在线安装

 开始安装

sudo apt-get install sqlite3

 目录下创建db

sqlite3 /home/zhongqiu/golang_test.db

 

 执行表创建语句

create table userinfo( id INTEGER PRIMARY KEY AUTOINCREMENT,username VARCHAR(64) NULL,departname VARCHAR(64) NULL,created DATE NULL);

 二、方案选型

SQLite是绝对值得考虑的嵌入式数据库项目,是开源版的Access。

Go语言支持SQLite的驱动比较多,但是很多都不支持database/sql接口:

目前支持database/sql的SQLite数据库驱动较少,采用标准接口有利于迁移。本文用第一个驱动。

 三、编写代码

3.1 代码运行环境准备

Go语言环境

确保Linux环境有go语言运行环境,因为会在linux运行Golang代码。(不想在windows上安装SQLite3)。

SQLite3生成db

如下图,db生成目录:

3.2 操作SQLite3 增删改查代码

package main

import (
	"database/sql"
	"fmt"
	_ "github.com/mattn/go-sqlite3"
)

type UserInfo struct {
	id         int64
	username   string
	departname string
	created    string
}

func main() {
	
	// 注意这里生成的db数据库路径一定要对上
	db, err := sql.Open("sqlite3", "/home/zhongqiu/golang_test.db")
	checkErr(err)

	// 插入数据
	id := insertUser(db)

	// 更新用户数据
	updateUser(db, id)

	// 查询用户
	queryUser(db)

	// 删除用户
	deleteUser(db, id)

	db.Close()
}

// 插入用户数据
func insertUser(db *sql.DB) (id int64) {

	stmt, err := db.Prepare("INSERT INTO userinfo(username,departname,created) values(?,?,?)")
	checkErr(err)

	res, err := stmt.Exec("王五", "产品部", "2000-10-10")
	checkErr(err)

	id, err = res.LastInsertId()
	checkErr(err)

	fmt.Println("插入后 返回", id)

	return id
}

// 更新用户数据
func updateUser(db *sql.DB, id int64) {
	stmt, err := db.Prepare("update userinfo set username =? where id =?")
	checkErr(err)

	res, err := stmt.Exec("王五改", id)
	checkErr(err)

	affected, err := res.RowsAffected()
	checkErr(err)

	fmt.Println("更新后的行数", affected)
}

// 查询用户
func queryUser(db *sql.DB) {
	rows, err := db.Query("SELECT * FROM userinfo")
	checkErr(err)

	userInfo := UserInfo{}

	for rows.Next() {
		err := rows.Scan(&userInfo.id, &userInfo.username, &userInfo.departname, &userInfo.created)
		checkErr(err)

		fmt.Println("userinfo 查询", userInfo)
	}
}

// 删除用户
func deleteUser(db *sql.DB, id int64) {
	stmt, err := db.Prepare("delete from userinfo where id =?")
	checkErr(err)

	res, err := stmt.Exec(id)
	checkErr(err)

	affected, err := res.RowsAffected()
	checkErr(err)

	fmt.Println("删除作用", affected)
}

// 检查错误
func checkErr(err error) {
	if err != nil {
		panic(err)
	}
}

3.3 验证结果

PS:

  1. 运行时候  github.com/mattn/go-sqlite3 不一定拉取下来,可以尝试切换源。
  2. 不用Conn时,可以尝试关闭。
  3. 可以看出采用了database/sql时,与该系列课程中的mysql操作流程几乎完全一致,只是在sql.Open时采用了SQLite的独有方式(部署服务能访问到的文件夹路径)。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SQLite 是一种轻型的关系型数据库管理系统,它可以嵌入到应用程序中,而不需要单独的服务器进程。而 Golang 是一种编程语言,它支持多种数据库,包括 SQLite。因此,可以使用 Golang操作 SQLite 数据库。 ### 回答2: SQLite是一种嵌入式数据库管理系统,而Golang是一种简洁高效的编程语言。在Golang中,SQLite提供了一个轻量级的数据库解决方案。下面是关于SQLiteGolang中的一些重要特点和用法。 首先,SQLiteGolang中的使用非常简单。通过导入`database/sql`和`github.com/mattn/go-sqlite3`等必要的包,可以使用SQLite进行数据库的连接、查询、更新等操作。同时,Golang的SQL包提供了类似于其他关系型数据库的SQL语句编写和执行的功能,使得与SQLite的交互变得非常容易。 其次,SQLite在性能方面表现出色。由于SQLite是一个嵌入式数据库,其数据存储在本地文件中,无需与其他服务器进行交互,因此能够提供快速的读写性能。此外,SQLite还支持事务处理,可以确保数据的一致性和完整性。 另外,SQLite具有较小的内存占用和存储空间,非常适合嵌入式设备或资源受限的应用程序。同时,SQLite以其高度可靠性而闻名,具有自动回滚事务功能,可以保证数据在意外停机或断电后的安全性。 最后,SQLite是一个跨平台的解决方案。无论是在Windows、Linux还是MacOS等操作系统上,都可以使用Golang开发的应用程序与SQLite进行交互。这为程序员提供了在不同环境中轻松移植和部署应用程序的便利性。 综上所述,SQLiteGolang中提供了一个高效、简单、可靠且跨平台的数据库解决方案。无论是小型项目还是嵌入式设备应用程序,都可以选择SQLite作为数据存储的首选。 ### 回答3: SQLite是一个轻量级的嵌入式数据库,而Go是一种编程语言。在Go语言中,我们可以使用SQLite作为数据库,利用其提供的API在程序中进行数据库操作。 在Go语言中,我们可以使用第三方库(例如go-sqlite3)来连接和操作SQLite数据库。这些库提供了一些函数和结构体,可以帮助我们方便地进行数据库的连接、查询、插入、更新和删除等操作。 在使用SQLite和Go语言进行数据库开发时,首先我们需要导入对应的库并进行连接。然后我们可以使用SQL语句来执行各种数据库操作,例如创建表、查询数据、插入数据等。在执行查询操作时,我们可以使用一些方法来获取查询结果,并将结果存储到Go语言的变量中。 与其他语言相比,Go语言使用起来更加简洁和高效。由于SQLite是一个嵌入式数据库,它不需要独立的服务器进程,可以直接嵌入到我们的应用程序中。这样就可以避免复杂的数据库部署和配置工作,提高了应用程序的性能和可移植性。 总结来说,SQLite和Go语言的结合可以为我们提供一个简单、快速和可靠的数据库开发环境。无论是小型的桌面应用程序还是大型的Web应用程序,SQLite和Go语言都可以提供良好的支持。使用SQLite和Go语言进行数据库开发,可以帮助我们更好地组织数据,提高应用程序的性能和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值