Portál AbcLinuxu, 10. května 2025 05:31

Dotaz: Java - MySQL ve vlastni tride

20.3.2005 16:35 Cvachta
Java - MySQL ve vlastni tride
Přečteno: 272×
Odpovědět | Admin
Dobry den,

v tomto foru jsem radily zvolit jako OOP jazyk na web Javu. Jelikoz si taky chci neco naprogramovat, tak jsem ji pouzil. Jsem naprosty zacatecnik a tak me prosim nekamenujte za (moznou) primitivnost tohoto dotazu.

Snazil jsem se udelat tridu pro komunikaci s MySQL podle navodu na linuxzone. Zde je text metody Query, ktera spousti dotaz:
 public ResultSet Query(String Query)
    {
     try {
         // Spustime dotaz do MySQL databaze
         RS = Stat.executeQuery(Query);
     } 
     catch(Exception e)
     {
           e.printStackTrace(); // Vypise cestu
     }
  
     return RS; 
    }
Zde ovsem bohuzel servlet skonci s NullPointer. Pochopil jsem ze asi neco bude blbe a tak jsem zkousel zmenit umisteni 'return RS;'. Prvni jsem ho zkusil dat do sekce try za samotny dotaz, ale kompiler vyhlasi chybu o chybejici casti return :-(. Taky mi jeste nedalo a znovu jsem procetl zminene clanky na intervalu a linuxzone a nasel cast finally, ktera se (asi) provadi vzdy - at se vyhodi vyjimka nebo ne (aspon tak to chapu :-)). Ale pokud umistim return do tohoto bloku, tak kompiler zase neco rika o: "warning: finally clause cannot complete normally". Cemuz bohuzel vubec nerozumim.

Proto Vas chci pozadat o radu kam ma prijit klauzule return a pokud se najde i nekdo ochotny, tak bych byl rad kdyby mi vysvetlil i chyby proc to nefunguje, kdyz je return tam a tam.

Dekuji
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

20.3.2005 17:51 Pavel K.
Rozbalit Rozbalit vše Re: Java - MySQL ve vlastni tride
Odpovědět | | Sbalit | Link | Blokovat | Admin
Doporučuju seznámit se s úplnými základy programování. Něco k return, try/catch a finall najdeš třeba tady: http://dione.zcu.cz/java/sbornik/9.html#9_13_SEC
20.3.2005 17:56 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Java - MySQL ve vlastni tride
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejsem Javista, ale není nulový ten objekt Stat? ;-)

Jinak by to asi chtělo delší ukázku, takhle není ani vidět, co je třeba Stat za proměnnou, natož jestli je inicializovaná...
20.3.2005 18:12 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
Rozbalit Rozbalit vše Re: Java - MySQL ve vlastni tride
Taky bych to tak viděl :-)
Copak toho není dost?
Pavel Stárek avatar 20.3.2005 21:45 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: Java - MySQL ve vlastni tride
Odpovědět | | Sbalit | Link | Blokovat | Admin
 public ResultSet Query(String Query)
    {
     try {
         // Spustime dotaz do MySQL databaze
         RS = Stat.executeQuery(Query);
     } 
     catch(Exception e)
     {
           e.printStackTrace(); // Vypise cestu
     }
  
     return RS; 
    }
Možná by bylo dobré tu metodu nadeklarovat takto:
public ResultSet Query(String Query, Statement Stat)
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
21.3.2005 07:36 Martin Beránek | skóre: 33 | blog: mousehouse | Brno
Rozbalit Rozbalit vše Re: Java - MySQL ve vlastni tride
Ja bych zase skoro ani radsi nepristupoval do databaze primo, ale pouzil perzistentni vrstvu. Ono se to potom rado zvrhne v nejkou odnoz PHP a to je vam potom java nanic.

Ten kdo autorovi dotazu doporucoval se seznamit se zaklady jazyka ma naprostou pravdu. Zacinat s javou na urovni J2EE je trosku nesmysl...
never use rm after eight
21.3.2005 14:11 qiRzT | skóre: 14 | blog: U_Marvina
Rozbalit Rozbalit vše Re: Java - MySQL ve vlastni tride
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jestli se nepletu, tak RS platí jen v bloku try{} (pokud není globální - pak ovšem proč return RS?) a tudíž není divu, že v tom příkazu je null(spíš mě překvapuje, že to vůbec projde překladčem - mělo by to řvát, že v return RS nezna RS). Tudíž radím ji deklarovat před try (něco jako ResultSet RS;).
Pokud v Jave moc neumis stahni si o Borlandu JBuilder. Je to sice trochu macek, ale na spoustu blbosti te upozorni....
Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
23.3.2005 21:13 Cvachta
Rozbalit Rozbalit vše Re: Java - MySQL ve vlastni tride
Ta fce je vytahla ze tridy, ktera by mela zapouzdrovat pripojeni k MySQL databazi. RS je private promena tridy a proto ji fce vraci...
23.3.2005 21:13 Cvachta
Rozbalit Rozbalit vše Re: Java - MySQL ve vlastni tride
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vzal jsem si vase rady k srdci a prostudoval co presne jsem napsal (a hlavne pochopil try, etc...) A chybu nasel. Obekt byl NULL protoze se nepripojil k databazi. On sice vyjimku hazel, ale ja blbec ji "zahodil" [- s timhle jsem se celou dobu drbal :'(] Sice to zatim nefunguje uplne, ale vsem dekuji za spravne nakopnuti :-)
23.3.2005 21:20 Leoš Literák | skóre: 74 | blog: LL | Praha
Rozbalit Rozbalit vše Re: Java - MySQL ve vlastni tride
Jeden muj byvaly kolega v byvale praci dostal padaka (i) proto, ze udelal prazdny catch blok. Proste chytil vyjimku a zahodil ji, ani ji nezalogoval.

Samozrejme se chyba musela projevit v den, kdy to melo jit do ostreho provozu a nikdo netusil, proc to nefunguje. Nakonec to hluboko do noci ladili a krokovali, nez nalezli chybu. A pak jej velmi nemeli radi.
Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
23.3.2005 21:30 Cvachta
Rozbalit Rozbalit vše Re: Java - MySQL ve vlastni tride
Taky bych se mel vyhodit :-)

Vaseho kolegy je mi lito :-(

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.