Найти Ρ‚Π΅ΠΌΡƒ
Golang

πŸ”₯ ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Go. Generic ОРМ, Π½Π° Π±Π°Π·Π΅ sqlx

ОглавлСниС

golang generic ОРМ на базС sqlx

Установка модуля:

go get github.com/daodao97/ggm

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования ggm. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ model_test.go, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎΠ± использовании.

GitHub - daodao97/ggm: golang generic orm, base on sqlx

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π‘Π”

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π‘Π”, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

модСль Π΄Π°Π½Π½Ρ‹Ρ…

НапримСр, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ структурой:

ОРМ МодСль для этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

interface: Table() строкара.

ПолС структуры Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Π΅Π³ db, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся имя поля db.

устанавливаСм соСдинСниС

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ этот ΠΌΠ΅Ρ‚ΠΎΠ΄, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ рСсурс Π‘Π”, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

select

insert

update

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ primary key update

where

Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…

Json

Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля user.profile Ρ€Π°Π²Π½ΠΎ json_string, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ {"skill":"Pegasus Ryuseiken"}

Π”Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² структуру для использования Π² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ собствСнный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…

Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ интСрфСйсы:

hasOne

one to one

hasMany

one to N

Golang
Go tests
GitHub - daodao97/ggm: golang generic orm, base on sqlx