Dostęp do bazy danych w Javie - czego się nauczyć?

1

Cześć,
Chciałbym zacząć robić programy łączące się z bazą danych, póki co znam sam MySQL więc pierwsze pytanie jest takie:

  • czy MySQL wystarczy na początek, czy zainteresować się już PostgreSQL lub innym językiem? (jeśli tak to jaki?)
    Drugie pytanie dotyczy frameworków właśnie do baz danych:
  • czy opłaca się uczyć JDBC? (wiem to nie framework) zrobiłem jeden program z bazą danych przy pomocy JDBC ale nie za fajnie mi się w tym kodowało więc czy JDBC jest potrzebny do efektywnego używania frameworków? Jeśli framework to Hibernate? Jakieś propozycje?

Z góry dziękuję za odpowiedzi.
Pozdrawiam ;)

0

Jak nie potrzebujesz mieć kosmicznej wydajności i masz małą bazę tak, poniżej 10k rekordów to MySQL wystarczy. Jak w przyszłości chciałbyś pracować przy dużym projekcie komercyjnym to lepiej już celować w Oracle. Możesz sobie zainstalować, z tego co pamiętam to baza musi być poniżej 4GB, ale nie wiem jak jest teraz.
JDBC dobrze jest znać. Czasami jak masz rozbudowane zapytanie Hibernate zrobi je mało optymalnie. A samemu przy pomocy JDBC można lepiej wystrugać ;)
Nie mam na mysli tego, żebyś zrezygnował z Hibernate, bo to jest dobry framework, dużo ułatwia.

0

Jestem takiego zdania, że lepiej już celować przyszłościowo więc pewnie oracle będę się uczył.
Jeśli chodzi o JDBC to z tego co widzę będę musiał zrobić drugie podejście... Więc pozostają jeszcze dwie kwestie, jedna o którą zapomniałem zapytać w pierwszym poście:

  • Relacyjne bazy danych czy nie? Czy może to i to? Jeśli też bez relacji to jakie?
  • Jaką obrać ścieżkę? Najpierw JDBC czy Hibernate? (Podstaw baz mam zamiar nauczyć się na początku reszta w trakcie robienia jakiegoś projektu, jak myślicie?)
0

W sieci jest sporo materiałów dotyczących "SQL vs NoSQL". To nie jest kwestia, co jest lepsze, bo tutaj raczej wygranego nie ma. Dobrać trzeba w zależności od potrzeb.
JDBC ma bardzo proste API, więc nie będziesz miał problemów z opanowaniem. Pisałem ostatnio w tym mały projekt i korzystało się dość wygodnie i intuicyjnie. Hibernate nie znam, więc się nie wypowiadam. W sieci też poczytasz na temat "JDBC vs Hibernate".

0

Chciałem zapytać doświadczonych ludzi, którzy znają te technologie i mieli z nimi styczność, dlatego też pytałem o konkretne nazwy baz i zależy mi na opiniach ludzi, którzy z nich korzystali. Niestety nie znam wszystkich technologii więc trudno "na ślepo" szukać odpowiedzi na moje pytania ;)

2

Nie ma sensu bawić się w Oracle czy tym podobne badziewia (w twoim przypadku). Firmy typu ubezpieczenia czy banki (gdzie pracuje od kilkunastu lat) korzystają z Oracle na potęgę - ale też mają od tego adminów i specjalistów, którzy tym administrują oraz zgłaszają programistom które np. operacje są niewydajne. Ergo, jeśli już wdepniesz w Oracle to będziesz miał zwykle dostęp do specjalistów, narzędzi i twoja wiedza w "dużych" bazach danych nie będzie aż tak potrzebna. (Chyba, że nie chcesz być programistą tylko adminem baz danych).

Jeśli już chcesz się bawić SQL to MySQL w domowym zaciszu i dla wielu projektów starczy . W odróżnieniu od Oracle dodatkowo masz rozsądną dokumentację, prosty installer itp. (Z punktu widzenia instalacji i podstawowych narzędzi to Oracle do wersji 11 (potem się nie bawiłem) wyglądał, jakby te narzędzia robili studenci na 2 dni przed zaliczeniem - wstyd -bo w Javie).

Olej JDBC - możesz poczytać jak to działa, ale się nie baw - weź Hibernate albo JOOQ albo MyBatis. Te dwa ostatnie są prostsze. Jeśli znasz i chcesz się uczyć SQL - lepiej Ci posłużą.

A z NoSQL vs SQL polecam obejrzeć ten wykład (wstawiam go juz chyba z 10 raz tu :-) ):
http://www.ustream.tv/recorded/46673907

0

@jarekr000000: Tak z ciekawości - dlaczego JDBC to zły pomysł?

0

Nie napisałem, że zły - nieoptymalny do nauki. Już sie raczej nieczęsto spotyka systemy, żeby ktoś zakładał PreparedStatement i po gołym ResultSet jechał.
Niskopoziomowe API - niech sobie żyje na niskim poziomie.

0

Dziękuję za odpowiedzi!
Powiem tak, nie wiem jakie są realia bycia programistą (jako pracownika) i nie wiem w jakim stopniu należy znać SQL'a widziałem, że dosyć często przewija się PostgreSQL, w sumie na chwilę obecną co zdążyłem przeglądnąć to nie ma wielkiej różnicy pod względem pisania zapytań. Więc jedyne pytanie mi teraz przychodzi do głowy czy będę potrzebował umieć tworzyć bazę czy jedynie zapytania do niej?

0

Naucz się też zakładać - zawsze się przydaje bycie samowystarczalnym. Z MySQL to proste.

0

Własne bazy robię na własne potrzeby ale to tylko proste bazy.
Ok, w takim wypadku idę powiększać wiedzę i wielkie dzięki! ;)

1

Jeśli chcesz iść drogą poważną drogą to wejdź w rozwiązania korporacyjne. Takim rozwiązaniem jest Oracle. Nie słuchaj ludzi mówiących Oracle = banki, ubezpieczenia. To nie jest prawda. Masa systemów ERP, systemów medycznych, systemów webowych, systemów do analizy danych korzysta z rozwiązań Oracle. W rzeczywistości jeśli nauczysz się korzystać z jednego systemu zarządzania bazą danych, przeniesienie się na inny nie będzie stanowiło wielkiego wyzwania. Pamiętaj że ANSI SQL prawie zawsze zadziała tak samo czy to mysql czy to oracle czy MS sql. Każdy z tych systemów ma jednak swoje unikatowe cechy np w przypadku Oracle będzie to dodatkowy język pl/sql którym w bardzo prosty sposób możesz operować na danych, w przypadku MS SQL będzie to T-SQL.
Ja również jestem na zupełnym początku drogi z językiem Java i po zapoznaniu się z rynkiem pracy wybrałem Java+Oracle.

Ktoś, coś wspominał o JDBC. Oczywiście że warto zapoznać się z JDBC i zobaczyć jak to działa. Dopiero w następnej kolejności warto dobrze poznać Hibernate i inne. Ważne też żebyś wiedział jak działa JDBC i co daje Ci Hibernate, jakie problemy rozwiązuje i w jaki sposób Ci pomaga.

Polecam Ci:
http://andrzejklusiewicz.blogspot.com/
http://andrzejklusiewicz-android.blogspot.com/p/bezpatny-kurs-programowania-android-java.html
https://www.mkyong.com/tutorials/jdbc-tutorials/

0

No powiem Ci, że chciałbym to wziąć na poważnie stąd moje pytania. JDBC jeśli nie jest to "nie wiadomo co" też poznam chociaż nie widzi mi się siedzenie w starych projektach no ale wiadomo, że nigdy nic nie wiadomo... Co do linków to dziękuję ale jeśli chodzi o androida to jakoś mnie to nie kręci, wolałbym apki webowe więc po ogarnięciu baz zapewne przyjdzie czas na Springa ale o tym za chwilę, parę chwil, ciężko określić, wyjdzie w "praniu".

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