Golang操作SQLite数据库的常用库
2024.01.18 01:12浏览量:10简介:介绍了在Golang中操作SQLite数据库的常用库go-sqlite3和sqlx,并给出了使用它们的简单示例代码。
千帆应用开发平台“智能体Pro”全新上线 限时免费体验
面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用
立即体验
在Golang中操作SQLite数据库,可以使用标准库或第三方库。标准库提供了一些基本的数据库操作接口,但功能相对有限。而第三方库提供了更多高级功能和更好的性能。下面介绍几个常用的Golang SQLite第三方库:
- github.com/mattn/go-sqlite3
go-sqlite3 是一个流行的SQLite库,提供了丰富的功能和性能优化。它支持事务、绑定参数、预编译查询等。下面是一个简单的示例,演示如何使用go-sqlite3连接SQLite数据库、执行查询和关闭连接:
在上面的示例中,我们首先使用package main
import (
"database/sql"
"fmt"
"log"
"github.com/mattn/go-sqlite3"
)
func main() {
// 打开数据库连接
db, err := sql.Open("sqlite3", "test.db")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 执行查询
rows, err := db.Query("SELECT * FROM my_table")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
// 遍历查询结果
for rows.Next() {
var id int
var name string
err = rows.Scan(&id, &name)
if err != nil {
log.Fatal(err)
}
fmt.Printf("ID: %d, Name: %s
", id, name)
}
}
sql.Open
函数打开SQLite数据库连接,指定数据库文件名(test.db
)。然后,我们执行一个简单的查询,并遍历查询结果。最后,我们使用defer
语句关闭数据库连接。
除了查询操作,go-sqlite3还支持插入、更新和删除等操作。你可以使用db.Exec
函数执行这些操作,并使用参数绑定来防止SQL注入攻击。 - github.com/jmoiron/sqlx
sqlx 是一个扩展了标准库的SQLite和MySQL驱动程序,提供了更多的功能和更好的性能。它支持事务、预编译查询、批量操作等。下面是一个简单的示例,演示如何使用sqlx连接SQLite数据库、执行查询和关闭连接:
在上面的示例中,我们首先使用package main
import (
"database/sql"
"fmt"
"log"
"github.com/jmoiron/sqlx"
)
func main() {
// 打开数据库连接
db, err := sqlx.Open("sqlite3", "test.db")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 执行查询
var id int
var name string
err = db.Get(&id, "SELECT * FROM my_table LIMIT 1")
if err != nil {
log.Fatal(err)
}
fmt.Printf("ID: %d, Name: %s
", id, name)
}
sqlx.Open
函数打开SQLite数据库连接,指定数据库文件名(test.db
)。然后,我们执行一个简单的查询,并获取查询结果。最后,我们使用defer
语句关闭数据库连接。
but此外它也提供了一个叫做MustExec
的方法用于执行INSERT, UPDATE, DELETE等操作。而且你可以利用它的事务特性进行更复杂的操作。

发表评论
登录后可评论,请前往 登录 或 注册