自动更新管控端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

100 lines
2.3 KiB

package db
import (
"fmt"
// 导入包,导入前缀为下划线,则init函数被执行,然后注册驱动。
"github.com/jmoiron/sqlx"
_ "github.com/logoove/sqlite"
)
var db *sqlx.DB
var err error
func Init() {
// fmt.Printf("hey,I am initilize function in SqliteDb\n")s
//
// Open() 函数指定驱动名称和数据源名称
db, err = sqlx.Open("sqlite", "ups.db")
if err != nil {
fmt.Printf("Database creation failed: %v\n", err)
return
}
// 调用db.Close() 函数,确保关闭数据库并阻止启动新的查询
// defer db.Close()
//
connectDB()
}
// 连接数据库
func connectDB() {
var version string
// QueryRow() 执行查询,返回版本号
err = db.QueryRow("SELECT SQLITE_VERSION()").Scan(&version)
if err != nil {
fmt.Printf("Database creation failed: %v\n", err)
return
}
// 连接成功,打印出"database connected:版本号"
fmt.Printf("Database creation successful: %v\n", version)
}
// 创建数据库表
func CreateTable() {
// 建表语句
sts := `
CREATE TABLE f_info (
id INTEGER PRIMARY KEY NOT NULL,
fname TEXT NOT NULL,
fpath TEXT NOT NULL,
fhash TEXT NOT NULL
);`
// 使用db.Exec() 函数来执行 SQL 语句
_, err = db.Exec(sts)
if err != nil {
fmt.Printf("Failed to create database table: %v\n", err)
return
}
fmt.Printf("Successfully created database table! \n")
}
// 插入数据
func InsertStf(sf StFileInfo) {
// 插入语句
res, err := db.Exec("INSERT INTO f_info(fname, fpath,fhash) VALUES(?,?,?)", sf.Fname, sf.Fpath, sf.Fhash)
if err != nil {
fmt.Printf("Insert data failed: %v\n", err)
return
}
// 获取自增ID
lastInsertId, _ := res.LastInsertId()
fmt.Printf("Successfully inserted data, lastInsertId = %v\n", lastInsertId)
}
// 查询数据
func Fquery(fpbs string) (stlist []StFileInfo) {
// 结果重量集合
stlist = make([]StFileInfo, 0)
// 查询语句
rows, err := db.Query("SELECT id,fname,fpath,fhash FROM f_info WHERE fpbs = ?", fpbs)
//
if err != nil {
fmt.Printf("Failed to query data: %v\n", err)
return
}
// FOR loop
for rows.Next() {
// var weight float64
var st StFileInfo
err = rows.Scan(&st.Id, &st.Fname, &st.Fpath, &st.Fhash)
if err != nil {
fmt.Printf("Failed to read data: %v\n", err)
continue
}
stlist = append(stlist, st)
}
return stlist
}