package main
import (
"database/sql"
"fmt"
_ "github.com/mattn/go-sqlite3" // 导入SQLite驱动
"log"
)
func main() {
// 打开数据库
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("JohnDoe", "johndoe@example.com", "2021-01-01 00:00:00")
if err != nil {
log.Fatal(err)
}
fmt.Println("数据插入成功")
}
这段代码首先导入了SQLite驱动,然后尝试打开一个数据库(如果不存在则创建)。接着创建一个表,并插入一条数据。如果在任何一个步骤中出现错误,代码将使用log.Fatal
打印错误并退出程序。这样的错误处理方式在开发过程中可以帮助快速定位和解决问题。