Golang操作SQLite数据库的常用库
2024.01.18 09:12浏览量:12简介:介绍了在Golang中操作SQLite数据库的常用库go-sqlite3和sqlx,并给出了使用它们的简单示例代码。
在Golang中操作SQLite数据库,可以使用标准库或第三方库。标准库提供了一些基本的数据库操作接口,但功能相对有限。而第三方库提供了更多高级功能和更好的性能。下面介绍几个常用的Golang SQLite第三方库:
- github.com/mattn/go-sqlite3
go-sqlite3 是一个流行的SQLite库,提供了丰富的功能和性能优化。它支持事务、绑定参数、预编译查询等。下面是一个简单的示例,演示如何使用go-sqlite3连接SQLite数据库、执行查询和关闭连接:
在上面的示例中,我们首先使用package mainimport ("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 intvar name stringerr = 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 mainimport ("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 intvar name stringerr = 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等操作。而且你可以利用它的事务特性进行更复杂的操作。

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