This package provides a method forwriting, reading and deleting go objects (structures) to and from SQLite databases. Not exactly a full "Object Relational Database" but a way to reduce the amount of boilerplate code and error handling need to keep a database in syncronization with objects.
This package is part of a wider project, github.com/mutablelogic/go-sqlite.
Please see the module documentation
for more information.
The general method is:
- Use tags on your
structdefinition to define the database table, columns, indexes and foreign keys; - Create a database connection and register the
structs you want to use to syncronize with the database. You also need to register foreign key relationships; - Create the tables and indexes in the database;
- Read, write and delete objects using the
Read,WriteandDeletemethods. You may need to use some hook functions to handle foreign key relationships.
For example, the following definition:
type Doc struct {
A int `sqlite:"a,autoincrement"`
B int `sqlite:"b,unique"`
C string `sqlite:"c"`
}Will create a table with the following statement:
CREATE TABLE IF NOT EXISTS main.doc (
a INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
b INTEGER,
c TEXT,
UNIQUE (b)
)A fuller explanation of the tags and supported types is provided below. SQObjects is currently in development.
TODO
TODO
TODO
TODO
TODO
TODO