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

Dostęp do bazy danych w Javie - czego się nauczyć?
DU
  • Rejestracja:prawie 9 lat
  • Ostatnio:prawie 4 lata
  • Postów:143
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 ;)

TR
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 lata
  • Postów:731
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.


musica curat corpus at animam
edytowany 1x, ostatnio: trojanus
jarekr000000
Tu chodziło Ci bardziej o Native Query SQL. Schodzenia do JDBC nie robi się z powodu źle zbudowanego SQL.
BA
MySql to też Oracle...
DU
  • Rejestracja:prawie 9 lat
  • Ostatnio:prawie 4 lata
  • Postów:143
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?)
JA
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 2 lata
  • Postów:32
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".

DU
  • Rejestracja:prawie 9 lat
  • Ostatnio:prawie 4 lata
  • Postów:143
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 ;)

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
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


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 3x, ostatnio: jarekr000000
Burdzi0
  • Rejestracja:prawie 9 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Futurama
  • Postów:887
0

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


Bite my shiny metal ass!
Life throws you an error code like that, you don't have the luxury of a ZnVja2luZw== pop-up explanation *Robię projekty studenckie, pisz priv ;) *
0
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
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.


jeden i pół terabajta powinno wystarczyć każdemu
DU
  • Rejestracja:prawie 9 lat
  • Ostatnio:prawie 4 lata
  • Postów:143
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?

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
0

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


jeden i pół terabajta powinno wystarczyć każdemu
DU
  • Rejestracja:prawie 9 lat
  • Ostatnio:prawie 4 lata
  • Postów:143
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! ;)

WS
  • Rejestracja:około 8 lat
  • Ostatnio:około 8 lat
  • Postów:11
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/

DI
w końcu jakaś normalna wypowiedź
DU
  • Rejestracja:prawie 9 lat
  • Ostatnio:prawie 4 lata
  • Postów:143
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".

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)