Posty

Wyświetlanie postów z luty, 2019

MySQL zmiana nazwy kolumny

Trochę tego szukałem, stąd post. Próbowałem różnych opcji i w końcu dotarłem do odpowiedniej.     Wzór jest taki: ALTER TABLE tableName CHANGE oldcolname newcolname datatype(length);     A praktyczny przykład to: ALTER TABLE subject CHANGE user userId int(10);      Na Staku  jest opcja z  apostrofami, ale u mnie nie działało, za to działa bez. Ciekawe jakby było, jakby nazwa kolumny miała spację...     To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoimi wrażeniami z tego posta, lub np. swoim dzisiejszym odkryciem  np. w komentarzu :)

MySQL: Aliasy można też dać w nazwach tabel

To przyśpiesza pisanie i stwarza większe szanse na brak errorów.     A robi się to tak, zamiast pisać: SELECT klinci.imie, klienci.nazwisko, zamowienie.nr FROM klienci, zamowienie WHERE klienci.id = zmaowienie.idklienta;     Można sobie uprościć pisanie: SELECT k.imie, k.nazwisko, z.nr FROM klienci AS k, zamowienie AS z WHERE k.id = z.idklienta;     I czytelniej i mniejsza szansa na literówkę. Podoba mi się :)     To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoimi wrażeniami z tego posta, lub np. swoim dzisiejszym odkryciem  np. w komentarzu :)  

MySQL zamiast JOINa w MySQLu można dać WHERE

To upraszcza sprawę.     No bo zamiast np dać: SELECT klienci.imie, zamowienie.nr FROM klienci JOIN zamowienie ON klienci.id = zamowienie.idklienta;      Można dać zwyczajne: SELECT klienci.imie, zamowienie.nr FROM klienci, zamowienie WHERE klienci.id = zamowienie.idklienta;      Długościowo może wyszło podobnie, ale za to WHERE jakoś mi łatwiej zapamiętać i przy większych połączeniach, to będzie krócej z pewnością.      To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoimi wrażeniami z tego posta, lub np. swoim dzisiejszym odkryciem  np. w komentarzu :)

MySQL nie obsługuje FULL JOINa

Chciałem, ale się nie da. Jeśli komuś jednak, bardzo zależy, to można to zrobić tak: SELECT * FROM t1 LEFT JOIN t2 ON t1.id = t2.id UNION SELECT * FROM t1 RIGHT JOIN t2 ON t1.id = t2.id Więcej info o tym na Stacku       To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoimi wrażeniami z tego posta, lub np. swoim dzisiejszym odkryciem  np. w komentarzu :)

W MySQLu słowo 'INNER' i 'OUTER' przy 'JOIN'ie może być pominięte

Nie było tego w treści kursu , ale postanowiłem sprawdzić i działa :)     To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoimi wrażeniami z tego posta, lub np. swoim dzisiejszym odkryciem  np. w komentarzu :)

Podstawowy błąd MySQL, a nie mogę zapamiętać: varchar musi być w ''

Już któryś raz piszę to i znowu to samo. Nie wiem jak mam to zapamiętać, więc postanowiłem napisać o tym, może lepiej zapamiętam :) Jak stworzyliśmy tabelę określając w jakimś polu varchar, to potem przy INSERT INTO musi być w tym miejscu nazwa w cudzysłowie. Np: CREATE TABLE postac (id int(10) NOT NULL auto_increment primary key, bajka_id int, imie varchar(255)); to potem jak wstawiamy pole to musi być tak:  INSERT INTO postac (bajka_id, imie) VALUES (1, 'Czika');      To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoimi wrażeniami z tego posta, lub np. swoim dzisiejszym odkryciem  np. w komentarzu :)

Dziwny Error SQL "... ERROR 1064 (42000): ... near '' at line 1 ..."

Właśnie przerabiam ostatnią część SQLowego kursu dotyczącą łączenia tabel i chciałem zrobić tabelę do ćwiczeń. Moja komenda wyglądała tak: CREATE TABLE postac (id int(10) NOT NULL auto_increment primary key, bajka_id int(10), imie varchar(255);     Gdy to wpisywałem, otrzymywałem taki error:  ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1      Zazwyczaj jak jest error w SQLu, to pokazuje od którego momentu jest coś nie tak, a tutaj miejsce '' niewiele mi mówiło.     Trochę się namęczyłem by znaleźć przyczynę, ale znalazłem ją w... nawiasie, a w zasadzie w jego braku. na końcu powinien być nawias :) czyli literówka.     To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoimi wrażeniami z tego posta, lub np. swoim dzisiejszym odkryciem  np. w komentarzu :)

SQL ma funkcje!

Tego się nie spodziewałem, czyli normalnie można uznać SQL za język programowania, nie to co HTML.     Co takie zaskoczenie dzisiejszego dnia. Tak jak i to, że w MySQLu funkcja RANDOM(), działa, gdy wpisze się RAND().     To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoimi wrażeniami z tego posta, lub np. swoim dzisiejszym odkryciem  np. w komentarzu :)

MySQL BETWEEN problem

Robię sobie kurs MySQLa i wszystko raczej idzie jak z płatka. Tylko przy BETWEEN delikatny error wyskoczył, ale już wiem, jak go naprawić, więc spieszę z zanotowaniem :)     Otóż standardowo jak się wpisze zapytanie: SELECT firstname FROM employee WHERE birthdate BETWEEN '1960-' AND '1970-';      To powinno pokazać wszystkie firstname z tabeli employee, gdzie data urodzin jest pomiędzy 1960 - 1970. Ale nie w MySQLu. W MySQLu, żeby działało, trzeba wpisać tak:  SELECT firstname FROM employee WHERE birthdate BETWEEN CAST('1960-01-01' AS DATE) AND CAST('1970-12-31' AS DATE);     I po tym powinno działać. U mnie działa ;)      To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoimi wrażeniami z tego posta, lub np. swoim dzisiejszym odkryciem  np. w komentarzu :)

Dodawanie bazy danych do MySQL z pliku przez terminal

Fajne, bo wczoraj miałem z tym problem i tak przypuszczałem, że jakoś da się to zrobić, ale nie bardzo wiedziałem jak.     Dzisiaj dowiedziałem się jak automatycznie dodawać do mojej bazy danych masowo tabele (encje, relacje), kolumny (atrybuty) i wiersze (krotki, rekordy).     Otóż polega to na kilku krokach: Firstly, musi być przygotowany odpowiednio plik.  Secondly, trzeba przejść w terminalu do folderu gdzie jest plik. Thirdly, należy odpalić MySQLa i przejść do bazy w jakiej chcemy dodać tabele z pliku. Forthly, wpisać komendę, która dodaje plik. AD. 1. Przygotowanie pliku Plik ma być w formacie *.sql. W pliku mają być wpisane komendy SQL. komentarz kończy się i zaczyna znakiem "/" Treść przykładowego pliku wygląda tak: /*******************************************************************************    Chinook Database - Version 1.4    Script: Chinook_MySql.sql    Description: Creates and populates the Chinook database.    DB Server: M

[Przetwarzanie danych, SQL, notatnik] Jak automatycznie umieścić nazwę firmy w nawias i linijkę wyżej

Naszło mnie na SQLa, więc podjąłem się takiego zadania, żeby mając plik txt z 700 osobami zrobić tak, żeby zamiast domyślnie zrobionego : Imię Nazwisko Firma Imię Nazwisko Firma Zrobić tak: Imię Nazwisko (Firma)     Początkowo robiłem ręcznie, ale szybko zorientowałem się, że to nie jest moja praca marzeń na następną godzinę, wiec zacząłem się zastanawiać, jak to zrobić, żeby to zautomatyzować. No bo przecież, dla komputera to byłaby chwila, gdyby tylko wiedział o co mi chodzi.      I dowiedział się :)     Po kilku rozważaniach, doszedłem do tego, że wystarczy w notatniku kliknąć opcję Znajdź i zmień  i wpisać w górnym polu: "\n\n" co oznacza dwa entery obok siebie, czyli znaki po nazwie firmy. W dolnym polu wpisałem ")", czyli, żeby dodało w tym miejscu tylko ")". Po takiej operacji otrzymałem: Imię Nazwisko Firma)Imię Nazwisko Firma)     Teraz wystarczyło zamienić jeden enter na spację i "(". Więc w górnym polu wpisałem &

@WebServlet(value = "/urlName"), gdzie "/" jest extremely ważne!

Zacząłem sobie naukę nowego pojęcia "Transakcje JPA". Żeby dobrze zacząć i powtórzyć sobie schemat klasy Servletu, zamiast kopiować to przepisałem sobie stałe elementy.     Po przepisaniu i implementacji nowej funkcjonalności, jak się okazało, wyskoczył error: java.lang.IllegalArgumentException: Invalid <url-pattern> in [urlName] servlet mapping     No, pomyślałem sobie, że to coś pewnie z tymi transakcjami, że musi być jakieś dodatkowe ustawienie w Tomcacie, albo w IntelliJ, jak to bywało w przeszłości i oczywiście lekkie poddenerwowanie, załamanie, frustracja, bo "znowu error", bo "znowu na filmiku działa, a u mnie działa", ocb?     Gdy wpisałem w googla, to na Stacku  przeczytałem coś o przedrostkach "/" i "*". Trochę mnie to zastanowiło. Gdy uważnie  przyjrzałem się swojej nazwie klasy, okazało się, że brakuje tam przecież "/". Ehh... i po errorze. Drobny znak, a tak ważny dla Tomcata. Teraz go bardziej d

Uważność

Zastanawiam się, czy mogę to uznać za jakąś radę, ale zdecydowałem, że napiszę o tym.     Cały dzień zmagam się z takim errorem: ERROR: Unknown column 'user0_.id' in 'field list'     No i wstukuję w neta i oczywiście otrzymuje wiele propozycji rozwiązań, bo to dość popularny error. I tak próbuję kolejne kombinacje i próbuję... Aż w końcu przy kolejnej opcji sprawdzam, iż pola, do których się odwołuję są z innej tabeli...     OMG. Po prostu robię kurs po Polsku i tam gość używa Polskich nazw i ja trochę na robiłem tak samo, żeby nie komplikować dodatkowo i tak początkowo dal mnie skomplikowanego tematu.     Ale w pewnym momencie zdecydowałem się na zmianę  nazwę klasy tabeli encji, ale pól nie zmieniłem . I stąd te problemy.     Gdy zmieniłem pola, na takie jakie są w drugiej tabeli - bo stworzyłem też tabelę taką jaka ma być (po angielsku) - i wygenerowałem jeszcze raz settery i gettery, to okazało się, że całą stronę błędów jak ręką odjął. Ehh...  

log4j appender error w Tomcacie

Jeśli taki błąd się wydarzy oto co trzeba zrobić:     3 rzeczy: Servlet Log4jInit.java Plik log4j.lcf Adnotacja w web.xml AD. 1: Servlet ma być umieszczony w folderze /src/main/[folder_z_klasami] Treść Servleta to: package main.Excercises_web_app ; import org.apache.log4j.PropertyConfigurator ; import javax.servlet.http.HttpServlet ; import javax.servlet.http.HttpServletRequest ; import javax.servlet.http.HttpServletResponse ; public class Log4jInit extends HttpServlet { public void init () { String prefix = getServletContext().getRealPath( "/" ) ; String file = getInitParameter( "log4j-init-file" ) ; // if the log4j-init-file is not set, then no point in trying if (file != null ) { PropertyConfigurator. configure (prefix+file) ; } } public void doGet (HttpServletRequest req , HttpServletResponse res) { } } AD. 2: Plik o nazwie "  log4j.lcf " trzeba umieścić w

NoSuchMethodError: javax.persistence.Table.indexes()? Za dużo JARów JPA

W ogóle miałem za dużo jarów. Tyle tych błędów się już przewinęło - a kilkaset więcej pomysłów na rozwiązania - że moje biblioteki namnożyły się ogromnie. Sądziłem, że "Od przybytku głowa nie boli", ale okazało się jednak, że "Co za dużo to nie zdrowo", tak więc otrzymałem tytułowy error: NoSuchMethodError: javax.persistence.Table.indexes()     Po sprawdzeniu kilku(nastu) stron natrafiłem na wypowiedź, że to jest bląd od nadmiaru bibliotek JPA.     Sprawdziłem. W sumie to usunąłem wszystkie biblioteki i od nowa dodałem tylko kilka, których wiedziałem, że potrzebuję - już jestem bardziej świadomy niż kiedyś, bo kiedyś to wgl dodanie biblioteki brzmiało mi kosmicznie. Przyjemne uczucie :)     Jak ręką odjął.     To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoimi wrażeniami z tego posta, lub np. swoim dzisiejszym odkryciem  np. w komentarzu :)

No persistence provider for entitymanager named..." Error

Dużo różnych rzeczy w tym sprawdzałem, i biblioteki i persistance.xml w META-INF i inne różne pomysły, które tylko mi internet zaproponował, a okazało się, że trzeba naprawić Problemy  w Project Structure.     To wystarczy w tym temacie, więcej nie widzę sensu pisać :)     To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoimi wrażeniami z tego posta, lub np. swoim dzisiejszym odkryciem  np. w komentarzu :)

Błąd w przeglądarce po starcie Tomcata? Bibliotekę jar do folderu Tomcata

Muszę o tym pamiętać, bo już któryś raz dodaję do classpatha IntelliJ i dziwię się, że nie działa.

CATALINA.sh jxmremote not found [NIGDZIE TEGO NIE MA!]

Obraz
Problem wyglądał tak:      Pojawiał się, gdy klikałem to:      A ustawiałem to klikając tu:      I ustawione miałem tak:      Wszystko chodziło o ten wpis:      Bo jak tego wpisu nie było, to działało normalnie. Ale mi zależało na tym wpisie, bo to jest wpis potrzebny do wirtualnej maszyny AWS, żeby baza działała tam.     Nigdzie nie mogłem znaleźć rozwiązania. Napisałem nawet pytanie na StackOverflow  - i na kilku innych grupach Facebookowych - ale i tak nikt mi nie pomógł.     Gdzieś po jednym dniu szukania miałem sobie zrobić przerwę, ale tak tylko rzuciłem okiem na dokumentacje oracla i ciekawą rzecz przeczytałem: " Tomcat configuration recommendations : ...Apache Tomcat does not run in Server mode by default..." Cały dokument można sobie przeczytać tutaj . Czyli to nie jest moja wina, że coś naprzestawiałem, tylko tak jest ustawione od razu, żeby zanim się uruchomi Tomcata wirtualnie, to trzeba go ustawić. Trochę mi ulżyło i tam wpad

Do prawidłowego połączenia się z AWSem potrzebne jest właściwe ustawienie Security Groups

Obraz
Ile ja się internetów naczytałem/naoglądałem, żeby się tego dowiedzieć to moje. Teraz to już chyba mogę być Senior Adminem AWS he he ;)     Otóż moja radość z sukcesu przedostatniego posta nie trwało długo, bo całą dwugodzinną przerwę jaką postanowiłem sobie zrobić w nagrodę za dokonanie tego wyczynu. Gdy wróciłem do kompa i chciałem załadować bazę okazało się, że jakimś cudem  - bo takie rzeczy to prawdziwy cud gdy raz działa, a raz nie działa, a raczej cudem było to, że wtedy zadziałało, teraz to wiem - nie mogłem się połączyć z bazą danych.     Zrezygnowanie jest chyba większe gdy coś się zostanie zrealizowane, a potem okaże się, że się nie zostało zrealizowane jednak...     W atmosferze zniechęcenia, smutku i przygnębienia, nie dałem za wygraną i zacząłem czytać internety. Najgorsze w uczeniu programowania chyba są dwie rzeczy: Gdy nie wiem czego szukam, Gdy dodatkowo wszystko nie jest ojczystym języku, a terminologia przygniata...     Jednak przeszukałem tyle materia

Zmiana hasła MySQL

Znalezienie tego nie było takie proste, ale jak już się wie, to proste ;)     Wiele razy chciałem zmienić hasło do bazy mysql, ale bezskutecznie. I w końcu się zawziąłem na tę zmianę i dopiąłem swego.     Najprostszy sposób na zmianę hasła - i co najważniejsze skuteczny, co nie jest takie oczywiste w innych przypadkach filmików instruktażowych na YT - to 3 komendy.     Po zalogowaniu się do naszej bazy trzeba wpisać kolejno: update user set authentication_string=PASSWORD('twoje-nowe-haslo') where user='root';     Po tej komendzie należy wpisać: update user set plugin='mysql_native_password' where user='root';     I na końcu:  update user set plugin='mysql_native_password' where user='root';     That's it ;)     To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoim dzisiejszym odkryciem  np. w komentarzu :)

Darmowy hosting online Aplikacji to Amazon Web Services (AWS)

Obraz
Kolejna bitwa z maszynami wygrana!     Ha ha, co za radość! W sobotę pół dnia siedziałem tylko nad jednym połączeniem z AWSem. Ni jak nie szło. Na filmiku działało, u mnie nie działało. Co za frustracja i bezradność. Tak się zmęczyłem walką, że całą niedziele nic nie zaglądałem do tego, bo miałem dość walki z maszynami.     No, ale dzisiaj poniedziałek i od samego rana - będzie gdzieś od 8:00 podjąłem kolejne podejście bitwy. Walczyłem intensywnie z różnymi efektami. Oto pasek kart mojej przeglądarki:     A i tak zamknąłem po drodze z 3-4 razy więcej. Normalnie się uparłem, żeby zrealizować wszystkie możliwości. W pewnym momencie, nawet już rozważałem poddanie się, bo szło bardzo źle. Wszak, to tylko dodatek do mojego planu, który to zakłada nauczenie się robienie aplikacji/mavena/springa/hibernate. A to jest umieszczanie apek w sieci, ale spodobał mi się ten pomysł, bo chciałbym je wysłać kilku znajomym, żeby sobie zobaczyli :) Jednak, walka była bardzo ciężka. Ale gdy nap

Lepszy program do zarządzania MySQLem to Workbench

Na początku używałem phpMyAdmin, pisałem o nim tutaj . I sądziłem, że jestem taki trendy, bo wiele razy słyszałem o tym programie, ale jak się właśnie przekonałem, to nie ten program teraz jest na topie.     Otóż teraz przoduje Workbench. I to nie tylko na jednym z filmików, ale także poleca go Amazon Web Service, więc to musi być bardzo dobry program. A skąd ta zmiana po zaledwie dwóch tygodniach?     A no bo doszedłem do momentu, w którym uczę się wstawiać moje apki na neta, a phpMyAdmin nie potrafi łączyć się on-line.  To znaczy znalazłem do tego jakieś filmiki na YT, ale już tylko je oglądając odechciało mi się wdrążać w temat. A jak zobaczyłem jak to się odbywa w Workbenchu, to postanowiłem zobaczyć co będzie. Spodziewałem się skomplikowanych ustawień, żeby działało - jak mi się kojarzy z ustawianiem MyAdmina, a tu się okazało, że chyba mi to zajęło 30 sekund i już miałem przed sobą swoją bazę danych. Co prawda nad połączeniem się z AWSem trochę się nafatygowałem, ale już dzia

Jeśli nie ma Drivera przy staracie Tomcata, to trzeba dodać mysql-connector...jar do folderu "/lib" Tomcata

Znowu ulga. A już chciałem rzucić to robienie, bo ile można walczyć z maszynami ?     Ale coś mnie tu trzyma i postanowiłem poszukać problemu w necie, bo przynajmniej czegoś się nauczę. I szukałem... okazało się, że to dość popularny problem, jednak już takie kombinacje robiłem, i nie wychodziło...     Aż w końcu przypomniałem sobie, że mam kilka folderów Tomcata - na początku, dość intensywnie z nim eksperymentowałem - więc wrzuciłem we wszystkie, jakie znalazłem i działa :)     A więc rozwiązanie zagadki: "java.lang.ClassNotFoundException: com.mysql.jdbc.Driver gdy pojawia się to dopiero przy korzystaniu z tego na odpowiedniej stronie łączącej się z bazą danych MySQL" to: umieszczenie biblioteki mysql-connector-java do folderu "lib" Tomcata.     To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoim dzisiejszym odkryciem  np. w komentarzu :)

GitEye - dobry program GUI do Gita

Dzisiaj znowu niczym Aniserowicz  Walczyłem z maszynami  a dokładnie ze Gitem.     Nie mogę zrozumieć, dlaczego ten Git jest taki skomplikowany. Nie mógłby normalnie dodawać do dysku nowe pliki i tam sobie je trzymać, a za jedną komendą aktualizować stan, jeśli by się coś zmieniło?     A tak, jak stworzę nowe repo, to jeszcze jakoś ok jest stworzone, pliki są dodane ok. W porządku, jest git. Ale jak tylko jakieś zmiany, coś znowu, a to czasem się uda, a to czasem error. I pokazuje, że najpierw wpisz taką komendę, potem taką i tak w kółko i nic nie wychodzi.     Denerwuje mnie to, bo podstawowe rzeczy są proste i powinny prosto być zrobione, a nie tylko jakieś komplikacje. Rozumiem, że jak kilka osób coś dodaje to wtedy zaczynają się problemy bo to musi być jakoś rozwiązane i wtedy skomplikowanie jestem w stanie wybaczyć bez bulwersu, ale takie tylko dodawanie plików i aktualizowanie? To powinno się robić klikiem.     I oto się robi :)     Ostatnio odkryłem GitEye - i przyznaj

Refresh przy Tomcacie [lewy dolny róg] reloguje server bez reseta

Opcji jest więcej.     Mam tu na myśli to, że można sobie ustawić różne funkcje do tego tak, by nie trzeba było na nowo resetować cały server, bo to kilka sekund znajduje, a tak, jeśli wystarczy drobne odświeżenie, to aktualizuje zmiany natychmiast i komputer się tak nie męczy :)     To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoim dzisiejszym odkryciem  np. w komentarzu :)