Documentation
¶
Index ¶
- func Create(table interface{}, db *sql.DB) error
- func Delete(database_struct interface{}, db *sql.DB) error
- func Get(database_struct interface{}, db *sql.DB) ([]string, error)
- func GetCustom(database_struct interface{}, db *sql.DB, where_statement string) ([]string, error)
- func GetLatest(database_struct interface{}, amount int, db *sql.DB) ([]string, error)
- func Insert(database_struct interface{}, db *sql.DB) error
- func Open(databasefile string) *sql.DB
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Create ¶
Initiates a new table in the database. The table should be a struct with json tags to be able to easily unmarshal the content later. Example struct to give as table:
type User struct {
id int `json:"id"` -- mandatory field to have in every struct
username string `json:"username"`
password string `json:"password"`
}
func Get ¶
sifdb.Get is what you use to fetch from the database. It takes a struct containing what fields you want to filter on. Example program:
type User struct {
Id int `json:"id"`
Username string `json:"username"`
Password string `json:"password"`
}
func main() {
db := sifdb.Open("test.sqlite")
if err := sifdb.Create(User{}, db); err != nil {
fmt.Println(err)
return
}
user := User{}
user.Id = 2
if user, err := getUser(user, db); err != nil {
fmt.Println(err)
return
} else {
fmt.Println(user)
}
}
func getUser(user User, db *sql.DB) (User, error) {
jsonString, err := sifdb.Get(user, db)
if err != nil {
return User{}, err
}
if len(jsonString) == 0 {
return User{}, errors.New("no user found")
}
if len(jsonString) > 1 {
return User{}, errors.New("found too many users")
}
json.Unmarshal([]byte(jsonString[0]), &user)
return user, nil
}
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.