Ahoj,
Jako semestrální práci v Javě jsem si vybral práci s db (+ gui, ...). Naučil jsem se jak postupovat, jak dávat dotazy do db apod. Problém je v tom, že v té práci mám použít (je to nutné) vlákna a kolekce a netuším, kde bych to měl použít.
Práci s db mám tak, že dotazem na db dostanu výsledky do RecordSetu, který pak projedu cyklem a zobrazím v tabulce, nevím proč bych jako „mezikrok“ měl použít třeba kolekce.
A už vůbec nevím jak a kde v aplikaci použít vlákna, protože přece pošlu dotaz a zobrazím výsledky. Nevím jaké dva procesy by měly běžet „současně“.
Díky za rady :-)
Fórum › Java
Semestrální práce - vlákna, kolekce
Pokud tam máš GUI a spouštíš ho přes invokeLater(), tak už tam máš vlastně použitá i vlákna... :smile1: Jinak asi nejjednodušší použítí vlákna je pro aktualizování nějakého progressbaru... :smile1:
Pro databázi můžeš použít třeba JDO (www.jpox.org), které v podstatě nahlíží na výsledky dotazů do DB jako na kolekce, ale chápu, že se ti to už asi nebude chtít předělávat...
invokeLater() nikde nemám, ani nevím co to je :)
A jak udelat prubech nacitani do tabulky pomoci progressbaru, tak to už je na mě moc... ale zkusím se po tom podívat.
Připojuju se na soubor*.mdb vytvořený v Accessu přes JDBC. Můžu se přes JDBC připojit i na nějakou MySQL databázi třeba na freehostingu? Asi by mi to ulehčilo práci, protože nevím jak na Sunech se to nastavuje jako jsem to nastavoval ve Windows (ovl. panely - ODBC)...
Jinak díky ;-)
Zmysluplné využitie vlakien v tvojom programe mi teda nenapadá, ale keď ho tam musíš mať, čo treba napríklad zobrazovanie času?? Ten čas si kludne vypisuj do nejakeho boxu, labelu.... :smile1:
class Casomerac extends Thread{
int hodin;
int minut;
int sekund;
public Casomerac(){
hodin=0;
minut=0;
sekund=0;
}
public void run(){
while(!isInterrupted()){
sekund++;
if(sekund==60){
sekund=0;
minut++;
}
if(minut==60){
minut=0;
hodin++;
}
System.out.println("Som spusteny "+hodin+":"+minut+":"+sekund);
try {
sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
class Main {
public static void main(String args[]){
new Casomerac().start();
}
}
Zdravim, mam tu taky jeden problem, potrebuju udelat high score, nejlepe s pomoci kolekce, ale:
mapa: sice ulozi ke jmenu cislo,ale stejne jmeno nelze a nemuzu to seradit podle hodnoty,ale jen podle klice
set: nemouzu priadit hodnotu ke jmenu,to same list.
Udelat si dve pole string a int, to je taky napad,ale kdyz jedno seradim, jak ho potom dat zpet k urcitemu jmenu.
Jeste byl napad ulozit do mapy, a z te mapy pak vytahnout jen hodnoty,seradit v poli, a pak se zpetne ptat do mapy ktere jmeno obsahuje tu kterou hodnotu z pole, a vysledek postupne ukladat nekam(treba jako kompletni string do listu atd),
ale co kdyz bude jedne hodnote,treba skore 400 odpovidat vic jmen? tak se to asi zhrouti ne? Fakt sem zkusil uz dost veci a stve me, ze takova prkotina nejde udelat nejak jednoduse.To cela hra (snake mimochodem) mi prisla jednodussi nez toto...Jestli mate nekdo nejaky napad nebo zkusenost, pls poradte, s javou teprv zacinam, tak nemam takovy rozhled jako vy :-) diky
Tak prečo si nevytvoriť nový objekt, ktorý by si pamätal počet bodov a meno hráča, ktorý to nahral. Potom by si to uložil napríklad do mapy, kde by bol kľúč poradie a vytvoril mechanizmus, ktorý by to usporadúval.
Alebo taktiež môžeš v tom objektu implementovať triedu Comparable a dorobiť metódu compareTo(Object o). A potom, keď už máš implementované Comparable, tak to môžeš uložiť napríklad do SortedSet a budeš to mať automaticky usporiadané(ak implementuješ compareTo správne).
Samozrejme musíš v compareTo zachytiť aj kto to kedy nahral, lebo niekedy robí problémy, keď sú rovnaké hodnoty. Teraz sa mi nechce spomínať, ani zisťovať, či keď hádže identitu compareTo(), alebo equals(). Ale nemal by to byť problém.
To Nightsorrow : libi se mi napad s vytvorenim noveho objektu, ale uz ted vidim nejvetsi problem v tom setrideni: do mapy to muzu hodit, a tree mapa treba rovna podle klice ne? ale da se do tree mapy dat jako klic integer??? jo a jeste dalsi dotaz, kdyz to budu potrebovat jeste ukladat a nacitat ze souboru, nejlepsi by bylo, aby objekt implementoval serializble, ale nas prednasejici rekl, ze pokud to ulozim, a pak znovu zbuildime program, uz to neprecteme...Za zbyldeni se pocita i kazdy dalsi start programu???
zip123 napsal:
To Nightsorrow : libi se mi napad s vytvorenim noveho objektu, ale uz ted vidim nejvetsi problem v tom setrideni: do mapy to muzu hodit, a tree mapa treba rovna podle klice ne? ale da se do tree mapy dat jako klic integer???
Místo primitivního datového typu použij wrapper Integer. jde o to, že klíč musí implementovat rozhrani Comparable, aby kolekce věděla, jak má dané klíče porovnávat.
[url]
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Integer.html
[/url]
jo a jeste dalsi dotaz, kdyz to budu potrebovat jeste ukladat a nacitat ze souboru, nejlepsi by bylo, aby objekt implementoval serializble, ale nas prednasejici rekl, ze pokud to ulozim, a pak znovu zbuildime program, uz to neprecteme...Za zbyldeni se pocita i kazdy dalsi start programu???
No, nejspíše měl na mysli promblém s serialVersionUID. Ale pokud neplánuješ dělat změny v kódu, které by znemožnili pozdější načítání, tak bych v tom problém neviděl.
[url]
http://www.javapractices.com/topic/TopicAction.do?Id=45
[/url]
[url]
http://java.sun.com/developer/technicalArticles/Programming/serialization/
[/url]
Jura myslel najskôr tento :smile1:
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Integer.html
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Semestrální práce — založil Diabolos
Semestralni prace — založil Dddf
Semestrální práce — založil Jirka
Semestrální práce — založil Zap
Semestralni prace - nevim si rady :( — založil jirka
Moderátoři diskuze