Techniki Zaawansowane
8 godz. 35 min · Java · Full-stack i Programowanie
Rafał SolarskiW poczatkowych lekcjach przyjrzymy sie pokladowi, na jakim bedziemy uruchamiali nasze programy. Wykorzystamy VisualVM do podgladania parametrów JVM. Zobaczymy równiez jakie zasoby sa tam dostepne oraz dowiesz sie jak monitorowac to, czy dobrze z nich korzystamy. Opowiemy Ci tez miedzy innymi o tym, jak zrobic heap i thread dump, oraz jak wlaczyc logi GC.
Kolejne lekcje kursu zostaly poswiecone wyrazeniom regularnym. Wyrazenia regularne mozemy wykorzystac nie tylko do walidacji danych wprowadzania przez uzytkownika, ale równiez do dzielenia tekstu oraz wyluskiwania wystapien wzorców w duzym tekscie. W tym rozdziale dowiemy sie miedzy innymi tego, jak mozemy wykorzystac ten potencjal z poziomu Javy.
Dzieki typom generycznym jestesmy w stanie osiagnac bezpieczenstwo typów w trakcie kompilacji przy zachowaniu elastycznosci pisanego kodu. W nastepnym rozdziale kursu przyjrzymy sie temu, jak mozemy je wykorzystac, oraz w jaki sposób czasami nalezy z tego bezpieczenstwa zrezygnowac.
Interfejsy funkcyjne to sposób na przeniesienie odrobiny swiata programowania funkcyjnego do Javy. Gdy polaczymy je z wyrazeniami lambda oraz API strumieni pozwola nam pisac te sama logike w duzo bardziej przejrzysty sposób.
Kolekcje, czyli listy, mapy, zbiory i kolejki to jedne z najczesciej wykorzystywanych klas w codziennej pracy. To jak dobrze poznamy ich mozliwosci ma ogromny wplyw na to, w jaki sposób bedziemy podchodzili do rozwiazywania wyzwan na naszej drodze.
System plików to zasób bez którego ciezko sobie poradzic. Pozwalaja nam na dostarczanie konfiguracji, danych wejsciowych i wyjsciowych, a przez to równiez integrowanie ze soba calych systemów.W tym rozdziale nauczymy sie korzystac z tych dobrodziejstw w bezpieczny sposób wykorzystujac m.in. IO Streams.
Trzymanie daty w String to niekoniecznie najwygodniejszy sposób. Juz od pewnego czasu Java dysponuje bardzo wygodnym Date&Time API - zobaczymy, co mozemy w nim znalezc.
Wielowatkowosc nie jest prosta... i dlugo tak jeszcze pozostanie. Nawet jesli korzystamy z frameworków, które próbuja ja przed nami ukryc, to ciagle musimy byc swiadomi problemów jakie sie z nia wiaza. W tym rozdziale poznamy glówne problemy na jakie mozna natrafic programujac wielowatkowo w Javie. Poznamy równiez klasy, które zdecydowanie pomoga nam zapanowac nad ta zlozonoscia.
JDBC to najbardziej podstawowy sposób laczenia sie z baza SQL z poziomu Javy. W wielu systemach/aplikacjach stosuje sie rozwiazania ORM takie jak JPA/Hibernate. Mimo wszystko warto wiedziec jak to pod spodem dziala oraz umiec poradzic sobie w aplikacjach, gdzie wybrano bardziej "lekkie" podejscie niz Hibernate.
Na koniec kursu wykorzystamy zdobyta wiedze, aby stworzyc prosta aplikacje pozwalajaca na przechowywanie danych o wydatkach. Po stworzeniu coreu aplikacji, mozesz spróbowac uzupelnic go za pomoca GUI.
Ten kurs stworzony zostal przede wszystkim z mysla o osobach, które juz poznaly podstawy jezyka, takie jak zmienne, mechanizmy kontroli wykonania, klasy, typy generyczne.Jezeli chcesz poczuc sie swobodnie nie tylko jesli chodzi o mechanizmy jezyka, ale równiez pod wzgledem znajomosci standardowej biblioteki Javy - to kurs w sam raz dla Ciebie. Materialy beda przydatne dla studentów, którzy znaja juz podstawowa skladnie Javy; programistów Javy chcacych poszerzyc lub uporzadkowac swoja wiedze; programistów innych jezyków, którzy chca poznac inny stack technologiczny.
Cześć w tym rozdziale zajmiemy się połączeniami
do bazy danych z poziomu javy jeżeli łączyły się do bazy danych z poziomu
javy no to automatycznie powinno nam się skojarzyć te jdbc
nic dziwnego ponieważ jest to podstawowy interfejs służący do takiego połączenia zacznijmy
jednak od tego czemu w ogóle możemy chcieć używać relacyjnych baz danych po pierwsze jest
to pewna taka warstwa która zapewnia nam powiedzmy na przykład
transakcyjny dostęp do danych a tu możemy z poziomu
tej warstwy skontrolować kto zapisuje kto odczytuje kto ma powiedzmy kto ma jakie
dostępy tak oraz powiedzmy możemy
na przykład wymusić powinien schemat tych danych tutaj od
takiego powiedzmy podstawowego poziomu jak powiedzmy na poziomie pool czyli
kolumn w tabelach tak możemy tutaj wymusić żeby dana dana była powiedzmy czy to
liczbą tekstem tak o jakichś wymiarach tak możemy
też powiedzmy wymusić to żeby te dane wpadające w tabelę powiedz
mają między sobą jakieś połączenia tak powiedzmy że tutaj dane
pracownika to musi on musi dla niego
istnieć jakieś stanowisko na przykład tak jakieś klucze
okej no to mamy możliwość wykorzystania sql
jest to bardzo potężny język deklaratywny króry w prosty sposób
pozwala na wyliczenie różnych rzeczy wykorzystanie pewnych funkcji
analitycznych oraz nawet robienie pewnych zapytań które są rekursywne
tak okej jeżeli chcemy wykorzystać sobie
właśnie połączenie z bazą danych z poziomu javy no
to potrzebujemy po pierwsze mieć dostęp do tej bazy w przypadku takich baz
jak oracle czy postgres będzie to oznaczało prawdopodobnie
posiadanie jakiegoś konta loginu i hasła do danej
bazy oraz dostępu przez jakiś port ponadto dla konkretnej
bazy danych tak na przykład dla oracle potrzebujemy mieć driver jdbc
jest to powiedzmy taki konektor jest to pewna implementacja
którą dostarcza twórca bazy tak on wie jak pod spodem
ta baza działa tak jak z nią trzeba tak jakby dogadywać się
tak więc on po prostu implementuje taki driver i dostarcza
go programiście który już powiedzmy on ten driver ma pewien
implementuje pewien powiedzmy standard
tak no i już z poziomu javy nie zależy czy to jest powiedzmy
driver oracle'owy czy to jest postgres'owy to już się go używa podobnie ok i bazą danych
którą wykorzystamy jest sqlite korzystają z tego względu że jest ona
po pierwsze bardzo prosta i jest plikowa ona praktycznie nie
wymaga instalacji wszystko powiedzmy co jest potrzebne do utworzenia
znajduje się już w samym driverze jdbc prawda czyli
podczas łączenia się do takiej bazy on sobie stawia całą
tą logikę tak oraz tworzy mały pliczek którym jest powiedzmy
właśnie wszystkie rzeczy związane z tą baza danych to znaczy wszelkie
dane prawda no i ona nam wystarczy do wszelkich
naszych eksperymentów okej skoro już
wiemy te rzeczy to już w kolejnej lekcji nauczymy się jak
sobie pobrać ten driver oraz go zainstalować startujmy