【Go】用 Go 原生以及 Gorm 读取 SQLCipher 加密数据库
warning:
这篇文章距离上次修改已过199天,其中的内容可能已经有所变动。
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/mutecomm/go-sqlcipher"
)
func main() {
// 使用 SQLCipher 驱动打开数据库
db, err := sql.Open("sqlcipher", "./example.db")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 设置数据库密码
if _, err := db.Exec("PRAGMA key = 'your-password-here'"); err != nil {
log.Fatal(err)
}
// 打开数据库
if err := db.Ping(); err != nil {
log.Fatal(err)
}
// 查询数据库
rows, err := db.Query("SELECT id, name FROM users")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var id int
var name string
if err := rows.Scan(&id, &name); err != nil {
log.Fatal(err)
}
fmt.Printf("ID: %d, Name: %s\n", id, name)
}
if err := rows.Err(); err != nil {
log.Fatal(err)
}
}
这段代码演示了如何使用 Go 原生的 database/sql
包和 Gorm ORM 来读取一个加密的 SQLCipher 数据库。首先,我们使用 sql.Open
函数以 SQLCipher 驱动打开数据库,然后通过 PRAGMA key
设置密码,并通过 Ping
方法检查数据库是否可以正常访问。接着,我们执行一个简单的查询操作,并遍历结果集,打印出每一行的内容。最后,我们检查并处理可能出现的错误。
评论已关闭