Hare este un sistem pur de gestionare a bazei de date Go care stocheaza fiecare tabel ca fisier text de JSON delimitat de linii. Fiecare linie a JSON reprezinta o inregistrare. Este potrivit pentru aplicatiile care necesita un SGBD incorporat simplu.
Cuprins
- Notiuni de baza
- Se instaleaza
- Utilizare
- Caracteristici
Notiuni de baza
Se instaleaza
Pentru a incepe sa utilizati Hare, instalati Go si rulati go get:
Utilizare
Configurarea Hare pentru a utiliza fisierele dvs. JSON
Un director de fisiere JSON este reprezentat de un iepure. Fiecare fisier JSON are nevoie de o structura cu membrii sai care corespund cu numele campului JSON. In plus, trebuie sa implementati 3 metode simple de tip boilerplate pe structura respectiva care ii permit sa satisfaca interfata iepure. Inregistrati.
O modalitate buna de a structura acest lucru este sa puneti acest cod boilerplate intr-un pachet „modele” in proiectul dvs. Puteti gasi un exemplu al acestui cod de tip boilerplate in fisierul exemple / crud / models / episodes.go.
Acum esti gata sa pleci!
Sa presupunem ca aveti un director „date” cu un fisier numit „contacts.json”.
Obiectul de nivel superior din Hare este o baza de date. Reprezinta directorul de pe discul dvs. in care se afla fisierele JSON.
Pentru a va deschide baza de date, mai intai aveti nevoie de o noua instanta a unui depozit de date. In acest exemplu, folosim magazinul de date Disk:
Hare are, de asemenea, magazinul de date Ram pentru baze de date in memorie.
Acum, veti trece magazinul de date la functia noua a lui Hare si va returna o instanta a bazei de date:
Crearea unei inregistrari
Pentru a adauga o inregistrare, puteti utiliza metoda Insert:
Gasirea unei inregistrari
Pentru a gasi o inregistrare daca cunoasteti ID-ul inregistrarii, puteti utiliza metoda Gasiti:
Actualizarea unei inregistrari
Pentru a actualiza o inregistrare, puteti utiliza metoda de actualizare:
tias putas abuelas españolas follando
sexo guarro correte dentro
coños bonitos todoporno
megan montaner follando pajotes
peludas porno las mejores folladas
porno casero colombiano viejasxxx
se follan a su mujer españolas peludas
negras tetonas guarras.com
peliculas x vintage comicxxx
orgia porno español porno torrent
videos chicas gratis porno peludas
videos caseros españa madresxxx
españolas peludas pilladas playa
anal interacial videos xxxxx
tias corriendose sexo en directo
masturbacion en grupo madura tetona
el video porno mas visto en internet corriendose dentro
asiatica forzada mamadas de abuelas
presentadoras desnudas porno canario
videos sexo porno online gratis
Age = 22 err = db.Update („contacte”, etc.)
Stergerea unei inregistrari
Pentru a sterge o inregistrare, puteti utiliza metoda Stergere:
Interogare
Pentru a interoga baza de date, puteti scrie expresia interogarii dvs. in Go pur si o puteti trece la functia QueryContacts a modelului dvs. ca o inchidere. Trebuie sa creati functia QueryContacts pentru modelul dvs. ca parte a configurarii. Puteti gasi un exemplu despre cum ar trebui sa arate aceasta functie in exemple / modele / episoade.go.
Asociatiile
Puteti crea asociatii (similare cu „appartine_to” in Rails, dar cu mai putine caracteristici). De exemplu, ati putea crea un alt tabel numit „relatii” cu campurile „id” si „tip” (adica „Sot”, „Sora”, „Coleg de munca” etc.). Apoi, ati adauga un camp „relatie_id” la tabelul de contacte si ati adauga, de asemenea, o structura de relatie incorporata. In cele din urma, in metoda „AfterFind” a modelelor de contact, care este apelata automat de Hare de fiecare data cand se executa metoda „Gasiti”, ati adauga cod pentru a cauta relatia asociata si pentru a completa structura relatiei incorporate. Aruncati o privire la fisierul crud.go din directorul „exemple” pentru un exemplu despre cum se face acest lucru.
De asemenea, puteti imita o asociere „has_many”, folosind o tehnica similara. Aruncati o privire la fisierele din directorul de exemple pentru a face acest lucru.
Administrarea bazei de date
Exista, de asemenea, metode incorporate pe care le puteti rula pe baza de date pentru a crea un nou tabel sau pentru a sterge un tabel existent. Aruncati o privire la fisierul exemple / dbadmin / dbadmin.go pentru exemple despre modul in care acestea pot fi utilizate.
Cand Hare actualizeaza o inregistrare existenta, daca lungimea inregistrarii modificate este mai mica decat lungimea inregistrarii vechi, Hare va suprascrie datele vechi si va tampona spatiul suplimentar pe linie cu toate „X”-urile.
Daca lungimea inregistrarii modificate este mai mare decat lungimea inregistrarii vechi, Hare va scrie inregistrarea modificata la sfarsitul fisierului si va suprascrie vechea inregistrare cu toate „X”-urile.
In mod similar, atunci cand Hare sterge o inregistrare, aceasta pur si simplu suprascrie inregistrarea cu toate „X”-urile.
In cele din urma, veti dori sa eliminati aceste inregistrari invechite. Pentru un exemplu de cum se face acest lucru, aruncati o privire la fisierul exemple / dbadmin / compact.go.
Caracteristici
-
Inregistrarile pentru fiecare tabel sunt stocate intr-un fisier JSON delimitat de linie noua.
-
Mutexurile sunt utilizate pentru blocarea mesei. Puteti avea mai multi cititori sau un singur scriitor pentru acel tabel simultan, atata timp cat toate procesele au aceeasi conexiune la baza de date.
-
Interogarea se face folosind Go insusi. Nu este nevoie sa utilizati un DSL.
-
Un callback AfterFind este rulat automat, de fiecare data cand se citeste o inregistrare, permitandu-va sa faceti lucruri creative, cum ar fi asocierile de completare automata etc.
-
Cand utilizati depozitul de date Disk, baza de date nu este citita in memorie, ci este interogata de pe disc, deci nu este nevoie sa va faceti griji cu privire la un set de date mare care umple memoria. Desigur, daca baza de date este atat de mare, probabil ca ar trebui sa utilizati un SGBD real, in loc de Hare!
-
Doua magazine de date back-end diferite pentru a alege: Disk sau Ram.








