Jak wygląda zabawa z bazą danych w Javie (analogicznie do EF)?

0

Trochę czasu nie mam na dogłębne analizowanie tematu.
Pracowałem w .NET i cała zabawa z bazą i ORM była bardzo prosta - Entity Framework
Chciałbym po prostu na szybko zacząć używać czegoś podobnego tylko w Javie.
Tzn. tak jak w .NET klikam na designerze szybko diagram ERD. Generuję z tego bez problemu bazę, wystarczy, że podam dane do podłączenia się do niej.
W kodzie później tworzę tylko obiekt kontekstu do bazy i korzystam. Niczego ręcznie nie mapuję, nie bawię się w SQL itd. Czasem tylko z lambdy skorzystam.
Szybciutko się to tworzy i już w kodzie mogę z tego korzystać obiektowo co tylko wcześniej zamodelowałem jako ERD encje z parametrami i związkami. (w drugą stronę też można, ale na razie tego nie potrzebuję)

DbClinicContainer dbContext = new DbClinicContainer();

Patient pat;
pat.kategoria = 3;
pat.Person = new Person();
pat.Person.Name = "Danuta";
pat.Person.Surname = "Brzydka";

dbContext.PersonSet.AddObject(pat.Person); // dodanie do bazy (do dwóch tabel)
dbContext.PatientSet.AddObject(pat);

//wszystkie zmiany mogę łatwo cofnąć jeśli ich jeszcze nie zcommitowałem
dbContext = new DbClinicContainer();
//albo zatwierdzić zmiany i zapisać w bazie
dbContext.SaveChanges();
dbContext.AcceptAllChanges();


//A wyszukanie pracowników po konkretnych polach mogę prosto zrobić np. tak:
List<Employee> list = dbContext.EmployeeSet.Where<Employee>(p =>
                (p.Person.Name.Contains(textbox.Text) || textbox.Text == "") &&
                (p.Person.Surname.Contains(textbox.Text) || textbox.Text == "") ;

W .NET to 5min. roboty by tak łatwo móc z tego korzystać. Rozumiem, że tutaj jest to lekko bardziej rozbudowane, bo to nie VS, który ma na start narzędzia zintegrowane, tylko do eclipsea trzeba coś doinstalować, ale czy na pewno? Bo Lekko badałem temat i wszędzie ludzie pisali z ręki mapowanie, a nie korzystali z wygenerowanego kodu jak w EF.

P.S. Do takiej zabawy z bazą w Javie lepiej będzie współpracował MySQL czy PostgreSQL?

poprawienie znacznika <code> - furious programming

1
  1. JPA to odpowiednik twojego EF
  2. Nie trzeba pisać żadnego "mapowania", wystarczy dodać adnotacje do zwykłej klasy i już
  3. Nie ma znaczenia, obie będą działać. Właściwie możesz się przepiąć między jedną a drugą bez żadnych zmian w kodzie aplikacji, tylko w xml konfiguracyjnym zmienisz sobie bazę na inną.

1 użytkowników online, w tym zalogowanych: 0, gości: 1