Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
sõnum |
|
tonism
Kreisi kasutaja
liitunud: 30.06.2002
|
13.03.2012 01:46:00
Java ja HSQL |
|
|
Tere,
Kas kellelgi on kogemust HSQL-ga? Pean looma ühe klient-server rakenduse, kus server hoiab enda andmeid HSQL andmebaasis, kuid esimese nokkimise tulemusena ei saanud serverit andmebaasiga suhtlema.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
|
Fukiku
Kreisi kasutaja
liitunud: 06.11.2003
|
13.03.2012 09:03:38
|
|
|
[sarcasm]Mu kristallkuul on hetkel korralises hoolduses..[/sarcasm]
Seega, räägi täpsemalt, mida sa juba üritanud oled ja kuhu sa toppama jääd. Hetkel on su küsimuse põhjal üsna keeruline abi pakkuda, kuna informatsiooni on vähevõitu.
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
|
tonism
Kreisi kasutaja
liitunud: 30.06.2002
|
13.03.2012 19:44:12
|
|
|
Andmebaasi olen omameelest loonud ning sinna mingid testkirjed sisse kandnud, kuid andmebaasile päringut saates saan veateate - Exception in thread "main" java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: BOOKMARKS
Kood on siis järgmine:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class SQLTest {
//static String database = "hsql://localhost/";
static String database = "jdbc:hsqldb:mem:.";
static String sql = "SELECT * FROM BOOKMARKS";
static Connection connection;
public static void main(String[] args) throws Exception {
System.out.println("Loading HSQL driver...");
Class.forName("org.hsqldb.jdbcDriver");
System.out.println("Connecting to database...");
connection = DriverManager.getConnection(database, "SA", "123");
Statement statement = null;
ResultSet resultSet = null;
System.out.println("Executing SQL query...");
statement = connection.createStatement();
resultSet = statement.executeQuery(sql);
System.out.println("Result:\n");
while (resultSet.next()) {
System.out.println(resultSet.getString("title") + " (" + resultSet.getString("url") + ")");
}
System.out.println("\nClosing query...");
resultSet.close();
statement.close();
System.out.println("Closing connection...");
connection.close();
}
} |
Sisuliselt vajaksin mingit elementaarset juhist / näidet kuidas seda toimima saada. Netiavarustest võib leida küll väga pikkasid juhiseid mille lugemisel avastad end tavaliselt juba ülejärgmisest päevast.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
|
andre85
HV vaatleja
liitunud: 10.09.2006
|
13.03.2012 20:18:17
|
|
|
tonism kirjutas: |
Andmebaasi olen omameelest loonud ning sinna mingid testkirjed sisse kandnud, kuid andmebaasile päringut saates saan veateate - Exception in thread "main" java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: BOOKMARKS
Kood on siis järgmine:
...
public class SQLTest {
...
static String database = "jdbc:hsqldb:mem:.";
...
}
} |
Sisuliselt vajaksin mingit elementaarset juhist / näidet kuidas seda toimima saada. Netiavarustest võib leida küll väga pikkasid juhiseid mille lugemisel avastad end tavaliselt juba ülejärgmisest päevast. |
See viitab andmebaasile, mis asub täiesti operatiivmälus ja on ühenduse loomisel tühi. Seep'rast ei leita ka tabelit BOOKMARKS.
Kettal oleva ab-i poole pöördumiseks on uri umbes selline: Connection c = DriverManager.getConnection("jdbc:hsqldb:file:testdb", "SA", "");
_________________ andres |
|
Kommentaarid: 8 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
|
tonism
Kreisi kasutaja
liitunud: 30.06.2002
|
13.03.2012 20:54:51
|
|
|
andre85 kirjutas: |
See viitab andmebaasile, mis asub täiesti operatiivmälus ja on ühenduse loomisel tühi. Seep'rast ei leita ka tabelit BOOKMARKS.
Kettal oleva ab-i poole pöördumiseks on uri umbes selline: Connection c = DriverManager.getConnection("jdbc:hsqldb:file:testdb", "SA", ""); |
Tegin tegelikult selle HSQL Database Manageriga ka sinna vastava sisu, mida see Manager ka näitas.
Proovisin vahepeal aga Standalone versiooni mälust jooksva andmebaasi asemel ning sain toimima. Mõistagi tuli siis uut aadressi kasutada andmebaasi failile, nagu ka välja tõid Igatahes tänud, saan edasi liikuda klient-server lahenduse loomisele (on ehk kellelgi mõtteid-soovitusi selles osas?), et siis hiljem server-database ühendus sinna otsa pookida.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
|
Fukiku
Kreisi kasutaja
liitunud: 06.11.2003
|
14.03.2012 09:15:05
|
|
|
Soovituste osas oleneb väga tugevalt, mida sul vaja on. Primitiivseid asju saab Java Socketitega teha ja midagi üleliia keerulist iseenesest ei ole. Paljude paralleelsete klientidega läheb asi muidugi pornoks kätte. Siis on võimalik kas ise Java NIO vahenditega üritada hakkama saada või kasutada mõnd raamistikku selleks - nt MINA.
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
|
YberCyrus
HV vaatleja
liitunud: 27.02.2010
|
14.03.2012 09:37:09
|
|
|
Lihtsalt huvipärast küsin, ega see töö pole seotud teatud firma proovitööna? Väga tuttav kirjeldus on vähemalt. Socketite kohapealt peaksid mingi basic asja valmis saama täiesti http://docs.oracle.com/javase/tutorial/networking/sockets/ lingi abiga, muidugi vaata multithreaded varianti. Kui tahad natuke efektiivsemaks teha kasuta thread pooli kuna threadi enda loomine on üsna kulukas protsess.
|
|
tagasi üles |
|
|
tonism
Kreisi kasutaja
liitunud: 30.06.2002
|
15.03.2012 03:56:16
|
|
|
Tegemist on proovitööga, jah. Kuid ideaalselt sobib, kuna tahtsin niikuinii seda teemat ühel hetkel uurima hakata (nii huvikorras teen ühte multiplayer mängu, kuid praegu on veel liiga vara sellest rääkida). Kandideerimine andis lihtsalt hea tõuke neid asju piiluma hakata
Usun, et socketid rahuldavad mu vajadused, kuid tuleviku perspektiivi silmas pidades (multiplayer action mäng) kardan, ennekõike Fukiku posti ajendil, et sellest jääb väheks. Proovin enda Galaxy S2-le ICS-i peale saada ning hakkan siis sellega tegelema.
[Later that day]
Fukiku kirjutas: |
... on võimalik kas ise Java NIO vahenditega üritada hakkama saada ... |
Uurin siin ühte näidet NIO-st, kuid paraku ei õnnestu mul see nii ilusti enda programmi sisse istutada, kui algul lootsin.
Ehk oskan näidata kätte mõne hea näite NIO klient-server lahendusest, mida saaks edaspidi ka tolle mängu tegemisel kasutada (toetaks sadu/tuhandeid paralleelseid ühendusi ilma jõudluse meeletu languseta)? Kindlasti ei tohiks see sellisel juhul kasutada palju worker-threade, võibolla isegi mitte ühtegi.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
|
Fukiku
Kreisi kasutaja
liitunud: 06.11.2003
|
15.03.2012 09:20:23
|
|
|
tonism kirjutas: |
[Later that day]
Fukiku kirjutas: |
... on võimalik kas ise Java NIO vahenditega üritada hakkama saada ... |
Uurin siin ühte näidet NIO-st, kuid paraku ei õnnestu mul see nii ilusti enda programmi sisse istutada, kui algul lootsin.
Ehk oskan näidata kätte mõne hea näite NIO klient-server lahendusest, mida saaks edaspidi ka tolle mängu tegemisel kasutada (toetaks sadu/tuhandeid paralleelseid ühendusi ilma jõudluse meeletu languseta)? Kindlasti ei tohiks see sellisel juhul kasutada palju worker-threade, võibolla isegi mitte ühtegi. |
Kas sa MINA-t vaatasid? Pean tunnistama, et tegelikult ma Java NIO-ga pole ise mänginud (koodinäidete järgi tundub ka ikka üsna rõve API olevat.. ). Olen tegelenud just Socketitega lihtsal tasemel (üks lõim ühenduse kohta, ei ole efektiivne ) ja ühte vingemat klient-server mängulahendust sai juba MINA-ga tehtud. MINA dokumentatsioonis on mingeid triviaalseid näiteid üsna mitmeid, millest peaks saama spikerdada.
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
|
serk
HV kasutaja
liitunud: 24.05.2003
|
15.03.2012 14:27:21
|
|
|
Kui sa teed proovitööd, siis viska see sout välja ning korralik logimine külge. log4j sobib väga hästi. Jätab vähe parema mulje.
|
|
Kommentaarid: 8 loe/lisa |
Kasutajad arvavad: |
|
:: |
1 :: |
0 :: |
7 |
|
tagasi üles |
|
|
tonism
Kreisi kasutaja
liitunud: 30.06.2002
|
15.03.2012 17:30:10
|
|
|
Ülaltoodud HSQL näide on vaid.. näide. Reaalselt olen selle implementeerinud sarnaselt, kuid kindlasti mitte nii (pigem objektide/meetodite vahel ära jaganud). Logimine on üks nõue, kuid samamoodi ka HSQL. See ei ole hetkel täielikult valmis, kuid kasutan custom klassi, mis koostab logi sündmustest reakaupa ning näitab neid programmis, konsoolis (ning tulevikus ka logifailis). Rea kaupa, kuna nõudekohaselt peab logi olema grepitav.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
|
Fukiku
Kreisi kasutaja
liitunud: 06.11.2003
|
15.03.2012 18:45:29
|
|
|
Tjah.. milleks kasutada industry standard lahendust, kui on võimalik leiutada jalgratast..
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
|
serk
HV kasutaja
liitunud: 24.05.2003
|
15.03.2012 20:09:10
|
|
|
tonism kirjutas: |
Ülaltoodud HSQL näide on vaid.. näide. Reaalselt olen selle implementeerinud sarnaselt, kuid kindlasti mitte nii (pigem objektide/meetodite vahel ära jaganud). Logimine on üks nõue, kuid samamoodi ka HSQL. See ei ole hetkel täielikult valmis, kuid kasutan custom klassi, mis koostab logi sündmustest reakaupa ning näitab neid programmis, konsoolis (ning tulevikus ka logifailis). Rea kaupa, kuna nõudekohaselt peab logi olema grepitav. |
Kogu seda asja saabki teha/tehaksegi, log4j'ga.
|
|
Kommentaarid: 8 loe/lisa |
Kasutajad arvavad: |
|
:: |
1 :: |
0 :: |
7 |
|
tagasi üles |
|
|
tonism
Kreisi kasutaja
liitunud: 30.06.2002
|
15.03.2012 20:20:33
|
|
|
Ei tahagi väita, et log4j on halb ning ma ei taha seda kasutada. Tahan hetkel lihtsalt keskenduda põhilisele (klient>server>andmebaas>server>klient andmevahetusele). Statistika ja logipidamine on hetkel teisejärgulised, kuid pean nendega kindlasti ka tegelema. Hetkel enda logija tegin seetõttu, et paraku ei suuda ma kolme-nelja võõrast APIt korraga õppida ning tegin kiiruga midagi lihtsat, mis esialgse vajaduse rahuldab. Lõplik ei ole see kindlasti.
Progressist nii palju, et sain NIO klient-server suhtluse püsti selle näite baasil (kohandatud minu mootorisse siis). Nüüd tuleb tegelikku suhtlusele keskenduda (uuenduste saatmine ja nende talletamine andmebaasis) ning seejärel siis viimasena logimine ja statistika.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
|
Fukiku
Kreisi kasutaja
liitunud: 06.11.2003
|
15.03.2012 20:35:35
|
|
|
Noh.. eks valikud on loomulikult su enda teha.. AGA log4j seadistamine oma projekti jaoks võtab umbes 10 minutit ja sa saad läbi kogu projekti seda pidevalt kasutada ning midagi keerulist seal ei ole. Üsna tobe oleks kogu suur töö ära teha ja siis hakata takkajärgi mingi find & replace meetodiga logimist ümber tegema ning kulutada selleks oluliselt rohkem aega..
Üldiselt, kui midagi vähegi suuremat ette võtad, siis mõistlik on alguses kõik vajalik infrastruktuur püsti panna ja siis hakata loogikat ehitama juba neid võimalusi kasutades. See hõlmaks siis logimist ning muid tervet rakendust läbivaid raamistikke, mis on plaanis kasutusele võtta.
Aga noh .. eks läbi oma vigade pidada ka õppida saama..
Ning ei mingit pahatahtlikkust minu poolt - ausõna - üritan lihtsalt mõttetutest ämbritest ja ajakulust mööda juhatada.
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
|
tonism
Kreisi kasutaja
liitunud: 30.06.2002
|
15.03.2012 21:27:37
|
|
|
Olen suht njuub kogu selle alal ning Javat olen teinud pm selle aasta algusest. Ämbrid on paratamatult vältimatud, kuigi tänan väga mind suunamast. Ilma teieta, eriti Fukiku-ta, oleksin ikka oluliselt suuremas jamas. Oled mind ikka väga palju suunanud Vähemalt omameelest olen üsna edumeelse progressi teinud, kuid kindlasti ei taha ma väita, et oleksin nüüd pro. Ma ei oska murdosagi sellest, mida päris progejad oskavad.
Mis puudutab log4j-i, siis ma kindlasti teen selle, kuid õnneks pole mul väga logimisele üldse rõhku pööratud ning muuta tuleb vaid mõned üksikud asjad hetkel. Ning ilusti saan ka olemasolevat süsteem log4j wrapperina kasutada, mis ehk oleks anyway mõistlik, kuna mul on vaja mõningaid spetsiaalseid välju selle sama logi sõnumiga uuendada.
Küsin aga pigem kuidas öelda kliendi (v ka serveri) poolt ühe sõnumiga mitu asja korraga? Mingi kokkulepitud eraldajaga?
Nt nii?
client: "tonism:0:100".getBytes()
server: "0:0:0:100:500".getBytes()
|
Tean, et korrektne oleks teha igasugu handshakingud ja protokolli käsustikud sinna veel, kuid sellegipoolest jääb õhku küsimus mitme asja korraga ütlemise kohta.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
|
serk
HV kasutaja
liitunud: 24.05.2003
|
15.03.2012 23:13:37
|
|
|
Loo protokoll mis lubab seda teha. Protokollist ei pääse sa niivõinaa, see ju igasuguse suhtluse alus.
|
|
Kommentaarid: 8 loe/lisa |
Kasutajad arvavad: |
|
:: |
1 :: |
0 :: |
7 |
|
tagasi üles |
|
|
tonism
Kreisi kasutaja
liitunud: 30.06.2002
|
16.03.2012 05:58:22
|
|
|
serk kirjutas: |
Kui sa teed proovitööd, siis viska see sout välja ning korralik logimine külge. log4j sobib väga hästi. Jätab vähe parema mulje. |
Kas tänapäeval mitte LogBack'i ei kasutata juba?
Paraku ei lähe see päris 10-minutiga tööle, kui varem seda näppinud pole. Kas keegi oskab mind suunata mõne hea näite peale v rääkida lühidalt mida tegema peaksin peale logback-core, logback-classic ja slf4j-api JAR failide lisamist CLASSPATH-i?
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
|
serk
HV kasutaja
liitunud: 24.05.2003
|
|
Kommentaarid: 8 loe/lisa |
Kasutajad arvavad: |
|
:: |
1 :: |
0 :: |
7 |
|
tagasi üles |
|
|
tonism
Kreisi kasutaja
liitunud: 30.06.2002
|
16.03.2012 16:46:12
|
|
|
Vaatasin neid, kuid seal tundus, et kutsutakse välja juba valmisolevad loggerid (Logger logger = LoggerFactory.getLogger("chapters.introduction.HelloWorld1"). Paraku pean tunnistama, et kella viieks hommikul pole uue asja õppimine enam nii eduline kui viiest õhtul
Tundub, et näites kasutatud impordid mingil põhjusel ei taha mul toimida. Pean vist aja nappuses praegu siiski alla vanduma ja selle kasutamata jätma, kuna pean töö esitama veel täna. Kui kellelgi on kiireid näpunäiteid kuidas selle tööle saan, oleksin tänulik, kuid paraku pole aega tundide viisi lugeda ja katsetada.
Pöördun hetkel statistika kogumise juurde.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
|
Fukiku
Kreisi kasutaja
liitunud: 06.11.2003
|
16.03.2012 17:31:36
|
|
|
Vat .. äkki oleks pidanud ikkagi koodinäiteid proovima ja mitte kahtlema autorite pädevuses oma tarkvara kohta primitiivset õpetust kirjutada. Minu meelest on seal selge sõnaga öeldud, et täpselt nii lihtne asja käima saamine ongi ja see "valmisolevate loggerite väljakutsumine" tekitab tegelikult siiski uue loggeri sellise nimega sulle kasutamiseks.
Aga millest arvad, et su impordid ei tööta? Siis peaks juba kompileerimisel tala saama, kui importide osas midagi nihu on.
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
|
tonism
Kreisi kasutaja
liitunud: 30.06.2002
|
17.03.2012 05:52:51
|
|
|
Jap, veateateid sain Eclipses juba kohe ning kompileerida ei õnnestunudki. Pean tunnistama, et kuna tähtaeg pressis selga siis ei jõudnud ka väga süvenenult seda juhendit lugeda, mis on ka peamine põhjus miks seda tööle ei saanud. Ilmselgelt ei pea ma põhjuseks autori pädevust isegi kõige lihtsamat näidet tuua
Praegusel juhul aga programm töötab nõuetekohaselt ja justkui oleks korras. Tegelikkuses vajab seal aga veel palju poleerimist ning kohati isegi ringi mõtlemist.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
|
|