Wbudowanie bazy mySQL w program

0

Witam, tworzę w javie małą aplikację z wykorzystaniem mySQL zainstalowany z mysql-essential-5.1.34-win32 jako oddzielny serwer i NetBeans 6.5. Program już prawie skończony, nawet działa ale tylko na komputerze na którym mam już stworzoną bazę w mySQL-u. Teraz chciałbym przenieść program na inny komputer i mam pytanie czy muszę na innym komputerze instalować mySQL-a i tworzyć od nowa bazę? Czy jest na to inny sposób? Może zamienić mySQL-a na SQL Lite?

0

zawsze mozesz podlaczyc program do zdalnej bazy...

nie wiem co masz na myśli mówiąc "tworzyć od nowa bazę" - instalujesz na innym kompie mysqla i puszczasz na nim skrypt z bazą - tyle.

0

Chodziło mi o to czy muszę od nowa tworzyć całą strukturę bazy w mysql-u? Jak ten skrypt zrobić? Co to za zdalna baza?

0

po prostu w miejscu podania ip do bazy nie podajesz localhost tylko zdalne ip komputera na którym baza się znajduje - jeśli nie chcesz uzależniać programu od jednego ip to możesz je podawać np jako argument z konsoli (i odczytywac jako args[0]).

Sql lite ma możliwość wygenerowania skryptu z bazą włącznie z danymi które się już w niej znajdują - nie wiem czy z konsoli się da zrobić to samo - za mało z mysqla korzystałem.

0

Boże jedyny... Po co pakować się w MySQLa? Jeżeli baza nie jest za duża (tak do 1GB) to można swobodnie użyć HSQLDB + JPA + Hibernate jako dostawca implementacji. Strukturę bazy można wygenerować za pomocą konfiguracji Hibernate. Żadnego kombinowania z dodatkowym serwerem, połączeniami itp. Pure Java.

0
Freakman napisał(a)

po prostu w miejscu podania ip do bazy nie podajesz localhost tylko zdalne ip komputera na którym baza się znajduje - jeśli nie chcesz uzależniać programu od jednego ip to możesz je podawać np jako argument z konsoli (i odczytywac jako args[0]).

Sql lite ma możliwość wygenerowania skryptu z bazą włącznie z danymi które się już w niej znajdują - nie wiem czy z konsoli się da zrobić to samo - za mało z mysqla korzystałem.

Ok dzieki bedę nad tym myślał jakoś sobie poradze. Może stworzę jakąś funkcję w pliku głównym która bedzie tworzyc bazę i tabele w mysql-u, ale to nie najlepszy pomysl

Boże jedyny... Po co pakować się w MySQLa? Jeżeli baza nie jest za duża (tak do 1GB) to można swobodnie użyć HSQLDB + JPA + Hibernate jako dostawca implementacji. Strukturę bazy można wygenerować za pomocą konfiguracji Hibernate. Żadnego kombinowania z dodatkowym serwerem, połączeniami itp. Pure Java.

Pewnie masz rację nie znam się na tym jestem początkujący. Robię w mysql-u bo taki mam projekt do szkoły.

0
polpol napisał(a)

Pewnie masz rację nie znam się na tym jestem początkujący. Robię w mysql-u bo taki mam projekt do szkoły.

Nie pisz takich rzeczy bo zaraz wszechwiedzacy Koziolek napisze ze debil-nauczyciel. Z nim nie pogadasz, co on powie jest dobre a jak robisz inaczej jest zle.

0

Chciałbym tylko zauważyć, że jeżeli nie masz licencji na MySQL, to Twój program musi być na GPL. Darmowy sterownik JDBC (MySQL Connector/J) jest na GPL, a jeżeli chcesz się połączyć z bazą, to program musi być zlinkowany z tym sterownikiem.

0
niepogodosz napisał(a)
polpol napisał(a)

Pewnie masz rację nie znam się na tym jestem początkujący. Robię w mysql-u bo taki mam projekt do szkoły.

Nie pisz takich rzeczy bo zaraz wszechwiedzacy Koziolek napisze ze debil-nauczyciel. Z nim nie pogadasz, co on powie jest dobre a jak robisz inaczej jest zle.

Skoro jest to projekt do szkoly to wyboru nie masz, ale w innym wypadku moze warto wysluchac rozwiazan, proponowanych przez kogos z troche wiekszym doswiadczeniem. Stosowac ich nie musisz, ale robienie czegos bez rozwazenia alternatywnych opcji czesto moze okazac sie nadkladaniem czasu/pracy/pieniedzy*

  • Niepotrzebne skreslic.
0

Nie widze nic zlego w rozpatrywaniu mozliwosci.
Co mi sie nie podoba to to, ze uzytkownik Koziolek notorycznie sugeruje poczatkujacym (jak np autor tego postu skoro zadal takie a nie inne pytanie) JPA / Hibernate itp. Czasami taki gosciu/panna ledwo czai o co chodzi (nie mowie teraz o autorze watku) ale dostaje zjebke ze uzywa JDBC a nie JPA. Wszystko po kolei, po co mieszac w glowach. Kazdy kiedys zaczynal, i nie sadze ze smigal od razu nie wiadomo co uzywajac nie wiadomo czego.
Co do tego ze Koziolek wyzywa nauczycieli od debili to jest to fakt, wystarczy przeszukac watki, to juz bylo kilka razy. Podobnie na koziolekweb, tam (przynajmniej kiedys, dawno nie odwiedzialem) bylo duzo na temat glupoty profesorow. Ani tu szacunku ani nic.

0

Co do tego ze Koziolek wyzywa nauczycieli od debili to jest to fakt, wystarczy przeszukac watki, to juz bylo kilka razy.

Bądźmy szczerzy - zwykle ma rację. Tylko kilka procent nauczycieli\wykładowców faktycznie zna się na rzeczy w zadowalającym stopniu, zaprzeczysz? Nie sztuką jest 'nauczać', sztuką jest nauczyć. Ech, mam wrażenie, że to kolejny urażony 'wykładowca'...

0

Nie jestem wykladowca, bardzo daleko mi do tego. Jednak nie uwazam ze wszyscy z nich do glaby, a jak kaza napisac cos z mysql to debile. Zreszta niewazne, przepraszam za offtop.

0

ojjojoj... Chyba naprawdę jestem taki zły i niedobry. Cóż... Zobaczmy. Ta dyskusja (początek) zainspirowały mnie do napisania tego:
JPA w aplikacji SE

Zarzućcie mi, że się czepiam, ale na zajęciach z Javy to raczej powinno się poznawać javę, a nie budować od nowa jakiegoś pseudo ORMa opartego o generowanie zapytań w stercie IFów. JPA powinno być nauczane jako podstawa, a JDBC jako uzupełnienie. Niestety wielokrotnie (osobiście na trzech uczelniach) spotkałem się z betonowym zacofaniem technologicznycm wykładowców, którzy często gęsto o JPA "słyszeli". Niestety w IT jak się nie rozwijasz to giniesz.

@polpol, czy w wymagania masz wpisane bezpośrednio JDBC? Jeżeli tak to współczuję. Jeżeli nie to przemęcz tutorial do JPA i nie będzie problemów z aplikacją, bazą danych czy innymi. Co do samego MySQLa to współczuje, bo nie uważam tego silnika za zbyt przyjazny dla aplikacji pracujących z Javą. Już prędzej Postgres, czy Oracle XE. Chociaż i tak jak dla mnie wymuszanie jakiegokolwiek silnika RDBMS w epoce ORM i dostarczanej przez nią abstrakcji jest z gruntu rzeczy debilizmem. Zaprzeczeniem zasad inżynierii oprogramowania mówiących o maksymalnej izolacji poszczególnych warstw, komponentów i usług.
Jeżeli już koniecznie musisz mieć MySQLa i koniecznie przenosić aplikację na inny komputer to rozejrzyj się za darmowym hostingiem bazy danych gdzieś w sieci. Ja znalazłem http://www.freesql.org/ . Warto jednak najpierw przygotować sobie skrypt tworzący bazę danych i wziąć pod uwagę, że na uczelniach oprogramowanie uwielbia zmieniać właścicieli i generalnie podlega licencji BSD BKJM (Boże Stwórz Dokumentację, bo kod już mam).

@niepogodosz, proszę bez osobistych wycieczek. Trochę już świata IT i uczelni zwiedziłem i mam odpowiedni ogląd na sytuację. Poza tym rzadko mi się zdarza kogoś opieprzyć, za używanie JDBC. Zazwyczaj sugeruję, żeby taka osoba przestała marnować swój czas i przyjrzała się czemuś znacznie przyjemniejszemu, łatwiejszemu dla początkującego i znacznie przyspieszającemu pracę. Taki już ze mnie typ, że jak już uczymy się czegoś to po bożemu, a nie od d**y strony.

0

Po bozemu wg Ciebie, inni wola zaczac inaczej. Np ja wolalem uczyc sie najpierw jdbc (fakt ze dosc dawno, ale przynajmniej wiedzialem co oznaczaja wygenerowane zapytania i jak zrobic tuning i poprawic mapowania). Mimo ze mam certa z ejb3 (ktore wymaga duzo wiedzy na temat jpa) i rozne takie tam to czasami wybieram proste jdbc gdyz nie zawsze projekt wymaga ciezkiej artylerii (w szczegolnosci taki na zaliczenie na uczelni). Znasz pojecie wyciaganie armaty na muche?
W ogole zaimponowales mi, masz faktycznie za je bis ty staz i jestes mega specjalista, skoro na podstawie 1 posta autora potrafisz poradzic jakiej technologii dostepu do danych ma uzyc. Gratulacje, wymaga nie lada wiedzy, 8. zmyslu (wierze ze masz 6. i 7.) i naprawde przezroczystej krysztalowej kuli. Zdradz nam prosze w jaki sposob na podstawie jednego wpisu mozna ocenic czy projekt wymaga jpa i ze 3 zapytania sql na krzyz faktycznie warto zamienic na hibernate (tak na marginesie, znasz innego providera? ciagle tylko hibernate i hibernate). To ze opanowales z pewnoscia jpa (nie bede negowal) nie oznacza ze trzeba to wszedzie na slepo uzywac. Wyjrzyj poza szablony o ktorych wszyscy pisza w necie.
I doucz sie tego angielskiego, mowilem ci kiedys ;d

0

@noiniepogodosz, można wyjść poza szablony, a na uczelni się nie przemęczać. Tyle tylko, że po 5 latach studiów trafia na rynek produkt - absolwent, który

  • ma problemy z opanowaniem nowej technologii,
  • nie zna zasad rządzących produkcją oprogramowania,
  • nie potrafi stosować wiedzy nabytej w szkole,
  • ma trudności w adaptacji do nowego środowiska.
    Później tylko narzekania i płacz, że mało płacą i ciężko robotę znaleźć.
    Dla mnie właśnie na uczelniach powinno wyciągać się armatę na muchy. Tam jest możliwość eksperymentowania i uczenia się. Na studiach nie jest niczym złym powiedzenie, że czegoś się nie umie. Jednocześnie jest to czas by nauczyć się jak najwięcej. Nie może być tak, że trafiasz do fabryki i odkrywasz, że nie masz zielonego pojęcia o jakimkolwiek aspekcie IT.
0

Zwykle nie bawię się w coś takiego jak pisanie postów na forach, ale ta dyskusja aż zmusza do paru słów komentarza. Mianowicie chciałęm obronić koziołka. Zacząłem czytajć jego bloga i czytam regularnie, nie tylko za to że jest dobrym fachowcem (i miłośnikiem ostrych brzmień), ale w dużej mierze właśnie za jego arogancję i za to, że potrafi wytykać błędy (i robi to bardzo trafnie). Fakt ... czasem robi to z całkowitym brakiem taktu i szacunku, ale taki już jest i bardzo dobrze, że taki jest ... bo jest jakieś urozmaicenie. Koziołku tak trzymaj i nic nie zmieniaj (nie daj się okrzesać i spokornieć).

A tak na marginesie ... @noiniepogodosz, nie neguj ... akceptuj, no chyba, że znasz koziołka osobiści i naprawdę Ci kiedyś dokopał (w co szczerze wątpię).

0

Nie wiedziałem że jedno pytanie może wywołać takie poruszenie :-O Po przeczytaniu tego widze ze każdy ma trochę racji. Ja się dopiero uczę programowania i nie jednemu z was nie sięgam do pięt pod tym względem i rozumiem zdziwienie Koziołka, który pomyślał sobie pewnie że jakiś narwaniec chce pisać program i się męczyć z mysqlem skoro są inne prostsze lub lepsze rozwiązania. Szczerze mówiąc ja przejrzałem tylko kilka stron o JPA i Hybernate i pewnie spróbuje sie z tym pobawić bo wcześniej nie miałem okazji. Mysqla wykorzystuje w javie bo miałem zadanie napisać jakaś stronę w PHP z mysqlem lub aplikację z mysqlem. Przedmiot jest na temat baz danych i pewnie dlatego takie zadania.

Jeśli chodzi o pytanie które zadałem trochę sobie z nim poradziłem tak na dziko tzn. po uruchomieniu program laczy sie z bazą "test" sprawdza czy istnieje baza "dane" jesli nie to tworzy bazę o tej nazwie i towrzy w niej tabele. Następnie dodałem jeszcze zapis bazy do pliku. Warunkiem jest tylko zainstalowanie mysql-a przed uruchomieniem programu. Teraz nie muszę kombinować jak wbudować tę bazę w program który tworzę. Ufff..Pozdro

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