golang连sqlite

发布时间:2024-11-23 18:13:09

使用Golang连接SQLite数据库

SQLite是一种嵌入式数据库引擎,它以轻量级和高性能著称。Golang是一种强大的开发语言,拥有出色的并发性能和简洁的语法。本文将介绍如何使用Golang连接SQLite数据库。

安装SQLite驱动

在开始之前,我们需要安装Golang的SQLite驱动。打开终端并执行以下命令:

go get github.com/mattn/go-sqlite3

这将下载并安装go-sqlite3驱动程序。

连接到SQLite数据库

在项目中导入"database/sql"和"go-sqlite3"库:

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

使用sql.Open()函数连接到SQLite数据库:

db, err := sql.Open("sqlite3", "./database.db")
if err != nil {
    fmt.Println(err)
    return
}

这将创建一个名为"database.db"的SQLite数据库文件(如果文件不存在)或者打开现有的数据库文件。

创建表格

要在数据库中创建表格,可以使用以下代码:

createTableSQL := `
    CREATE TABLE IF NOT EXISTS employees (
        id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
        name TEXT,
        age INTEGER
    );
`

_, err = db.Exec(createTableSQL)
if err != nil {
    fmt.Println(err)
    return
}

这将创建一个名为"employees"的表格,包含"id"、"name"和"age"字段。

插入数据

要向表格中插入数据,可以使用以下代码:

insertSQL := `
    INSERT INTO employees (name, age) VALUES (?, ?)
`

stmt, err := db.Prepare(insertSQL)
if err != nil {
    fmt.Println(err)
    return
}

defer stmt.Close()

_, err = stmt.Exec("John Doe", 35)
if err != nil {
    fmt.Println(err)
    return
}

这将在"employees"表格中插入一条记录,其中"name"为"John Doe","age"为35。

查询数据

要从表格中查询数据,可以使用以下代码:

selectSQL := `
    SELECT id, name, age FROM employees WHERE age > ?
`

rows, err := db.Query(selectSQL, 30)
if err != nil {
    fmt.Println(err)
    return
}

defer rows.Close()

for rows.Next() {
    var id int
    var name string
    var age int

    err = rows.Scan(&id, &name, &age)
    if err != nil {
        fmt.Println(err)
        return
    }

    fmt.Printf("ID: %d, Name: %s, Age: %d\n", id, name, age)
}

这将从"employees"表格中查询年龄大于30的记录,并打印每条记录的ID、名称和年龄。

更新数据

要更新表格中的数据,可以使用以下代码:

updateSQL := `
    UPDATE employees SET name = ? WHERE id = ?
`

stmt, err := db.Prepare(updateSQL)
if err != nil {
    fmt.Println(err)
    return
}

defer stmt.Close()

_, err = stmt.Exec("Jane Doe", 1)
if err != nil {
    fmt.Println(err)
    return
}

这将更新"employees"表格中ID为1的记录的名称为"Jane Doe"。

删除数据

要从表格中删除数据,可以使用以下代码:

deleteSQL := `
    DELETE FROM employees WHERE age < ?
`

stmt, err := db.Prepare(deleteSQL)
if err != nil {
    fmt.Println(err)
    return
}

defer stmt.Close()

_, err = stmt.Exec(25)
if err != nil {
    fmt.Println(err)
    return
}

这将从"employees"表格中删除年龄小于25的记录。

关闭连接

最后,不要忘记在程序结束时关闭数据库连接:

db.Close()

这样可以确保与数据库的连接被正确释放。

结论

本文介绍了使用Golang连接SQLite数据库的基本操作,包括连接数据库、创建表格、插入数据、查询数据、更新数据和删除数据。SQLite提供了一种轻量级且高性能的解决方案,而Golang则提供了强大的并发能力和简洁的语法。将它们结合起来可以实现高效的数据库操作。

相关推荐