Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Java ja HSQL märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
tonism
Kreisi kasutaja

liitunud: 30.06.2002




sõnum 13.03.2012 01:46:00 Java ja HSQL vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 13.03.2012 09:03:38 vasta tsitaadiga

[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
vaata kasutaja infot saada privaatsõnum
tonism
Kreisi kasutaja

liitunud: 30.06.2002




sõnum 13.03.2012 19:44:12 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
andre85
HV vaatleja

liitunud: 10.09.2006




sõnum 13.03.2012 20:18:17 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
tonism
Kreisi kasutaja

liitunud: 30.06.2002




sõnum 13.03.2012 20:54:51 vasta tsitaadiga

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 icon_smile.gif 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
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 14.03.2012 09:15:05 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
YberCyrus
HV vaatleja

liitunud: 27.02.2010




sõnum 14.03.2012 09:37:09 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
tonism
Kreisi kasutaja

liitunud: 30.06.2002




sõnum 15.03.2012 03:56:16 vasta tsitaadiga

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 icon_smile.gif

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
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 15.03.2012 09:20:23 vasta tsitaadiga

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.. icon_razz.gif). Olen tegelenud just Socketitega lihtsal tasemel (üks lõim ühenduse kohta, ei ole efektiivne icon_smile.gif) 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
vaata kasutaja infot saada privaatsõnum
serk
HV kasutaja

liitunud: 24.05.2003




sõnum 15.03.2012 14:27:21 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
tonism
Kreisi kasutaja

liitunud: 30.06.2002




sõnum 15.03.2012 17:30:10 vasta tsitaadiga

Ü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
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 15.03.2012 18:45:29 vasta tsitaadiga

Tjah.. milleks kasutada industry standard lahendust, kui on võimalik leiutada jalgratast.. icon_smile.gif
_________________
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
vaata kasutaja infot saada privaatsõnum
serk
HV kasutaja

liitunud: 24.05.2003




sõnum 15.03.2012 20:09:10 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
tonism
Kreisi kasutaja

liitunud: 30.06.2002




sõnum 15.03.2012 20:20:33 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 15.03.2012 20:35:35 vasta tsitaadiga

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.. icon_smile.gif

Ü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.. icon_smile.gif

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
vaata kasutaja infot saada privaatsõnum
tonism
Kreisi kasutaja

liitunud: 30.06.2002




sõnum 15.03.2012 21:27:37 vasta tsitaadiga

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 icon_smile.gif 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
vaata kasutaja infot saada privaatsõnum
serk
HV kasutaja

liitunud: 24.05.2003




sõnum 15.03.2012 23:13:37 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
tonism
Kreisi kasutaja

liitunud: 30.06.2002




sõnum 16.03.2012 05:58:22 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
serk
HV kasutaja

liitunud: 24.05.2003




sõnum 16.03.2012 09:45:25 vasta tsitaadiga

Oled ikka juhendi läbi töötanud? Minuarust on seal kõik väga kenasti kirjas.

http://logback.qos.ch/manual/introduction.html
Kommentaarid: 8 loe/lisa Kasutajad arvavad:  :: 1 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum
tonism
Kreisi kasutaja

liitunud: 30.06.2002




sõnum 16.03.2012 16:46:12 vasta tsitaadiga

Vaatasin neid, kuid seal tundus, et kutsutakse välja juba valmisolevad loggerid (Logger logger = LoggerFactory.getLogger("chapters.introduction.HelloWorld1")icon_wink.gif. Paraku pean tunnistama, et kella viieks hommikul pole uue asja õppimine enam nii eduline kui viiest õhtul icon_smile.gif

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
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 16.03.2012 17:31:36 vasta tsitaadiga

Vat .. äkki oleks pidanud ikkagi koodinäiteid proovima ja mitte kahtlema autorite pädevuses oma tarkvara kohta primitiivset õpetust kirjutada. icon_smile.gif 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. icon_smile.gif

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
vaata kasutaja infot saada privaatsõnum
tonism
Kreisi kasutaja

liitunud: 30.06.2002




sõnum 17.03.2012 05:52:51 vasta tsitaadiga

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 icon_smile.gif

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
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Java ja HSQL
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.