sql

package module
v1.5.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 2, 2022 License: GPL-3.0 Imports: 8 Imported by: 109

README

sqlite

A pure-go wrapper for database/sql using logoove/sqlite

Usage

type row struct {
    ID   int // pk
    Name string
}

db := &sql.Sqlite{DBPath: "demo.db"}
err := db.Open(time.Hour)
if err != nil {
    panic(err)
}

err = db.Create("demotable", &row{})
if err != nil {
    panic(err)
}

err = db.Insert("demotable", &row{ID: 123, Name: "Anna"})
if err != nil {
    panic(err)
}

var r row
err = db.Find("demotable", &r, "WHERE ID=123")
if err != nil {
    panic(err)
}
fmt.Println(r)

Documentation

Overview

Package sql 数据库/数据处理相关工具

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNilDB      = errors.New("sqlite: db is not initialized")
	ErrNullResult = errors.New("sqlite: null result")
)

Functions

This section is empty.

Types

type Sqlite

type Sqlite struct {
	DB     *sql.DB
	DBPath string
	// contains filtered or unexported fields
}

Sqlite 数据库对象

func (*Sqlite) CanFind

func (db *Sqlite) CanFind(table string, condition string) bool

CanFind 查询数据库是否有 condition condition 可为"WHERE id = 0" 默认字段与结构体元素顺序一致 返回错误

func (*Sqlite) CanQuery added in v0.5.0

func (db *Sqlite) CanQuery(q string) bool

CanQuery 查询数据库是否有 q q 为一整条查询语句, 慎用 默认字段与结构体元素顺序一致 返回错误

func (*Sqlite) Close

func (db *Sqlite) Close() (err error)

Close 关闭数据库

func (*Sqlite) Count

func (db *Sqlite) Count(table string) (num int, err error)

Count 查询数据库行数 返回行数以及错误

func (*Sqlite) Create

func (db *Sqlite) Create(table string, objptr interface{}, additional ...string) (err error)

Create 生成数据库 默认结构体的第一个元素为主键 返回错误

func (*Sqlite) Del

func (db *Sqlite) Del(table string, condition string) error

Del 删除数据库表项 condition 可为"WHERE id = 0" 返回错误

func (*Sqlite) Drop added in v0.3.0

func (db *Sqlite) Drop(table string) error

Drop 删除数据库表

func (*Sqlite) Find

func (db *Sqlite) Find(table string, objptr interface{}, condition string) error

Find 查询数据库,写入最后一条结果到 objptr condition 可为"WHERE id = 0" 默认字段与结构体元素顺序一致 返回错误

func (*Sqlite) FindFor

func (db *Sqlite) FindFor(table string, objptr interface{}, condition string, f func() error) error

FindFor 查询数据库,用函数 f 遍历结果 condition 可为"WHERE id = 0" 默认字段与结构体元素顺序一致 返回错误

func (*Sqlite) Insert

func (db *Sqlite) Insert(table string, objptr interface{}) error

Insert 插入数据集 如果 PK 存在会覆盖 默认结构体的第一个元素为主键 返回错误

func (*Sqlite) InsertUnique

func (db *Sqlite) InsertUnique(table string, objptr interface{}) error

InsertUnique 插入数据集 如果 PK 存在会报错 默认结构体的第一个元素为主键 返回错误

func (*Sqlite) ListTables

func (db *Sqlite) ListTables() (s []string, err error)

ListTables 列出所有表名 返回所有表名+错误

func (*Sqlite) Open

func (db *Sqlite) Open(cachettl time.Duration) (err error)

Open 打开数据库

func (*Sqlite) Pick

func (db *Sqlite) Pick(table string, objptr interface{}) error

Pick 从 table 随机一行

func (*Sqlite) Query added in v0.5.0

func (db *Sqlite) Query(q string, objptr interface{}) error

Query 查询数据库,写入最后一条结果到 objptr q 为一整条查询语句, 慎用 默认字段与结构体元素顺序一致 返回错误

func (*Sqlite) QueryFor added in v0.5.0

func (db *Sqlite) QueryFor(q string, objptr interface{}, f func() error) error

QueryFor 查询数据库,用函数 f 遍历结果 q 为一整条查询语句, 慎用 默认字段与结构体元素顺序一致 返回错误

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL