探索高效数据管理:go-sqlite3 开源驱动深度解析
    		       		warning:
    		            这篇文章距离上次修改已过420天,其中的内容可能已经有所变动。
    		        
        		                
                
package main
 
import (
    "database/sql"
    "log"
 
    _ "github.com/mattn/go-sqlite3" // 导入go-sqlite3驱动
)
 
func main() {
    // 打开SQLite数据库文件
    db, err := sql.Open("sqlite3", "./example.db")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()
 
    // 创建一个表
    createTableSQL := `CREATE TABLE IF NOT EXISTS users (
        "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, 
        "username" TEXT,
        "email" TEXT,
        "created_at" DATETIME
    );`
    if _, err := db.Exec(createTableSQL); err != nil {
        log.Fatal(err)
    }
 
    // 插入数据
    insertSQL := `INSERT INTO users (username, email, created_at) VALUES (?, ?, ?)`
    stmt, err := db.Prepare(insertSQL)
    if err != nil {
        log.Fatal(err)
    }
    defer stmt.Close()
 
    _, err = stmt.Exec("testuser", "testuser@example.com", "2021-01-01T00:00:00")
    if err != nil {
        log.Fatal(err)
    }
 
    // 查询数据
    rows, err := db.Query("SELECT id, username, email, created_at FROM users")
    if err != nil {
        log.Fatal(err)
    }
    defer rows.Close()
 
    for rows.Next() {
        var id int
        var username string
        var email string
        var createdAt string
        if err := rows.Scan(&id, &username, &email, &createdAt); err != nil {
            log.Fatal(err)
        }
        log.Println(id, username, email, createdAt)
    }
 
    // 更新数据
    updateSQL := `UPDATE users SET username = ? WHERE id = ?`
    _, err = db.Exec(updateSQL, "newuser", 1)
    if err != nil {
        log.Fatal(err)
    }
 
    // 删除数据
    deleteSQL := `DELETE FROM users WHERE id = ?`
    _, err = db.Exec(deleteSQL, 1)
    if err != nil {
        log.Fatal(err)
    }
}这段代码展示了如何使用go-sqlite3包来操作SQLite数据库的基本操作,包括创建表、插入数据、查询数据、更新数据和删除数据。这是一个简单的数据库操作示例,对于学习如何在Go中使用SQLite数据库有很好的教育意义。
评论已关闭