Używam ostatnio sqlite3 z językiem c. Czy ktoś może mi powiedzieć jakieś wygodne ORM dla c? Czy istnieje potrzeba opracowania mechanizmu ORM dla moich własnych projektów?Czy istnieje jakiś wygodny framework biblioteki ORM dla c?
Odpowiedz
Potrzebuję ORM sugeruje, że masz jakiś model obiektu biznesowego/domeny na uwadze, że chcesz mapować do bazy danych.
Jeśli tak, to wydaje mi się, że próbujesz napisać aplikację biznesową w języku najlepiej dostosowanym do programowania systemów (C). Możesz zastanowić się, czy jest to dobra strategia architektoniczna.
Ponadto nie sądzę ORM jest coraz częściej być dobrym rozwiązaniem dla języka, który:
- nie jest sama w sobie obiektowe
- nie ma wiele wsparcia dla meta- programowanie/odbijanie, które zwykle ma kluczowe znaczenie dla wielu systemów ORM
Wreszcie, istnieje wiele osób, które uważają, że ORM jest anty-wzorem w każdym przypadku. (example, example, example)
Ogólnie rzecz biorąc, moja propozycja będzie albo:
- Unikać ORM w ogóle, jeśli masz zamiar kontynuować przy użyciu C
- przełączyć się języka/platformy gdzie ORM jest co najmniej dobrze obsługiwane i pasuje do paradygmatu (oczywiście Java)
Dziękuję bardzo. Sugestie są pomocne. Moim początkowym zamiarem jest uniknięcie wielokrotnego manipulowania w celu uzyskania dostępu do bazy danych. Ponieważ znalazłem w moim projekcie wiele kodów powtórzeń.Napisałem do tego jakiś mechanizm, ale trudno go całkowicie streścić. Najpierw znajduję ORM i jest ich niewiele. –
Krótka wyszukiwarka google wymyślił to: http://ales.jikos.cz/smorm/
nigdy nie użył go, więc nie wiń mnie, czy to formatuje wszystkie dyski twarde i sprawia, że lodówka wystarczająco ciepło, aby zepsuć mleko, ale wygląda na to, że może być lepiej niż nic, jeśli naprawdę nie chcesz pisać zapytań.
o tak. wydaje się, że autorzy nie mają zaufania do swoich API. –
Napisałem this library jako "ORM dla C".
przykładowy kod wygląda następująco:
typedef struct person {
int id;
char *name;
} person;
void find_by_name(isti_db *db, const char *text, person** result) {
corm_person_select *s;
corm_person_select_alloc(&s, db);
s->name(s, "like", text)->_go_one(s, result); // populate result from the database
s->_free(s, 0); // in "real" code, 0 is a chained status value
}
niestety, to nie jest w użyciu wszędzie (o ile wiem) i zawiera sporo pomysłów, które zaprawiony programistów C może znaleźć dziwne. ale to nie jest porzucone - nadal jestem zainteresowany problemem i mam nadzieję, że będę mógł kontynuować pracę nad nim w pewnym momencie.
- 1. Czy istnieje jakiś indeks bibliotek tylko dla Py3k?
- 2. Dragover - czy istnieje jakiś problem?
- 3. Czy istnieje standard dla kryptosystemów progowych (m z n)?
- 4. Czy istnieje krótka nazwa dla Formuły języka Power Query (nieoficjalnie zwana "M"), która nie jest "M"?
- 5. Czy istnieje jakiś sprawdzian składni dla GNU R
- 6. Czy istnieje make_tuple dla C#?
- 7. Styl komentarza C++:/* M ... M * /, co oznacza "M"?
- 8. Biblioteki kompresji dla C++
- 9. Czy istnieje jakiś rodzaj CacheDependency w System.Runtime.Caching?
- 10. Czy framework dla architektury Java istnieje dla Java?
- 11. Czy istnieje dyrektywa preprocesora do wykrywania biblioteki standardowej C++ 11?
- 12. Czy jest jakiś klient PHP dla Oauth2?
- 13. Dlaczego istnieje propozycja biblioteki sieciowej dla C++ 14/17?
- 14. Czy zasoby biblioteki C są podobne do biblioteki Boost C++?
- 15. C# alternatywa do wyliczenia dla relacji n: m
- 16. Czy istnieje jakiś rodzaj bezpiecznego magazynu lokalnego w systemie Windows?
- 17. Czy istnieje jakiś parser JSDoc Open Source napisany w JavaScript?
- 18. Czy istnieje podspec dla Opencv?
- 19. czy istnieje sposób wskazania lub usunięcia niepotrzebnego importu w pliku .m obiektu Objective-C
- 20. Czy istnieje jakiś framework lub projekt WWW, który zapewnia funkcje podobne do "ściany"?
- 21. Wysokiej jakości biblioteki dla C++
- 22. Czy jest jakiś open source ddk Open Source dla Androida?
- 23. Czy istnieje wersja python dla biblioteki metryk opartej na JVM
- 24. Czy istnieje parser CSS dla C#?
- 25. Czy istnieje jakiś elegancki sposób manipulować moim ndarray
- 26. Czy istnieje osadzalna alternatywa Java dla Redis?
- 27. 3D Framework C# WinForm dla symulacji mikromechanicznych
- 28. Czy istnieje alternatywa dla atrybutu "Pack" StructLayout w Compact Framework?
- 29. Czy istnieje plik DSYM dla .framework (oprócz aplikacji)?
- 30. Kompilowanie biblioteki C dla Androida
Wygląda na to, że każdy, kto chciałby, aby ORM najprawdopodobniej nie kodował w C .. –
Co masz na myśli, skoro na ogół brakuje na ogół części Object tego akronimu? – Justin
również się nad tym zastanawiałem (jakaś biblioteka do automatyzacji dostępu z c); prawdopodobnie mapowałoby strukturę do wiersza w tabeli. proszę, czy spadkowcy/zamykacze wyjaśniają, dlaczego? –