databáze součásti javy

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

databáze součásti javy

Příspěvek od Václav Sedlář »

Dobrý den, řešíme ve škole jeden program v javě a potřebovali bychom, aby součástí programu byla i databáze...je nějaké řešení?

Databáze se musí spustit s programem...program pak něco do dbs zapisuje...když se ukončí program, dbs se ukončí taky (data v ní zůstanou)

V zadání totiž je, že na klientském pc nebude žádná dbs...vše musí být s programem...

díky
Caderom
Začátečník
Začátečník
Uživatelský avatar
Registrován: 03. pro 2005
Bydliště: Beroun

Re: databáze součásti javy

Příspěvek od Caderom »

SQLite
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: databáze součásti javy

Příspěvek od Václav Sedlář »

ok, díky...prostudujeme....

ještě nám někdo říkal něco o derby databázi...nemáte nějaké info?
Caderom
Začátečník
Začátečník
Uživatelský avatar
Registrován: 03. pro 2005
Bydliště: Beroun

Re: databáze součásti javy

Příspěvek od Caderom »

Jo, Derby databáze by šla také použít.

Stručné srovnání těchto 2 databází - http://www.sqlite.org/cvstrac/wiki?p=SqliteVersusDerby
arxeiss
Začátečník
Začátečník
Uživatelský avatar
Registrován: 19. črc 2008
Bydliště: Krmelín (předměstí Ostravy)
Kontaktovat uživatele:

Re: databáze součásti javy

Příspěvek od arxeiss »

Javu neprovozuju, a výše zmíněné DB taky ne, ale o SQLite vím, že je to hojně využívaná DB v malých programcích, je to DB která nepotřebuje žádný server ani nic, a je souborová, jenom tvůj program musí mít třídu pro práci s touto DB.
Je ovšem hodně omezená, ale pro klasické věci stačí až nad hlavu. Např většina aplikací v Androidech právě pro ukládání využívá SQLite
PC : CPU: C2D E5200 2500Mhz @ 3750Mhz a AC Freezer 7PRO MB: Gigabyte GA-P31-DS3L rev.2,1 GPU: ATI Radeon 3650HD 256MB RAM: A-Data Vitesta 2x2GB Zdroj: Forton OEM 400W HDD: Samsung F2 500GB
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: databáze součásti javy

Příspěvek od Václav Sedlář »

jj, vypadá to že to chodí...teď to budeme testovat....díky za pomoc....ozvu se jak to dopadlo...
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: databáze součásti javy

Příspěvek od Václav Sedlář »

no tak mám zajímavý problém:

udělal jsem javu, sbírání dat, zápis do DBS SQLite, vzhled a pod. a po spuštění to při pokusu o zápis dat do DBS hodí do výpisu chybu out of memory....program nespadne, běží dál...

když jsem celý projekt poslal kolegům, tak jim to nedělá a normálně zapisuje do DBS...

nevíte proč?
yuri.cs
Mírně pokročilý
Mírně pokročilý
Uživatelský avatar
Registrován: 03. led 2007
Bydliště: hl.m. piva
Kontaktovat uživatele:

Re: databáze součásti javy

Příspěvek od yuri.cs »

Skus JVM dat parametr napr. -Xmx512m a sleduj jestli bude mit porad malo pameti.
It will be amazing in case after 10GHz we will see 20GHz, 30GHz and so on, just like we witnessed the thorny way from 10MHz to 33MHz in the eighties. -xbitlabs.com
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: databáze součásti javy

Příspěvek od Václav Sedlář »

ok, zkusím to v netbeansech najít a nastavit...

Ale koukal jsem do správce úloh na volnou fyz.paměť a než program spustím mám asi 550 volné paměti...po spuštění to klesne na necelých 400a pak při zápisu to do databáze to dost klesne...ale na nulu se to dostane jen při opakovaném (neúspěšném) zápisu...

Ale na PC kde mi to funguje tak i když mám dle správce úloh nula paměti, tak to funguje...
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: databáze součásti javy

Příspěvek od Václav Sedlář »

tak to nepomohlo...pořád chyba

dělá to už na začátku:

Kód: Vybrat vše

public void CreateTable(String name) throws SQLException {
        try {
            Class.forName("org.sqlite.JDBC");
            Connection conn = DriverManager.getConnection("jdbc:sqlite:" + this.name + ".db");
            Statement stat = conn.createStatement();
            stat.executeUpdate("create table if not exists " + name + " (id integer PRIMARY KEY AUTOINCREMENT, datum_a_cas datetime, prutok float(53));");

            conn.close();
        } catch (ClassNotFoundException e) {
            // něco
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }

    }

vleze to do :

Kód: Vybrat vše

} catch (SQLException e) {
            System.out.println(e.getMessage());
        }
yuri.cs
Mírně pokročilý
Mírně pokročilý
Uživatelský avatar
Registrován: 03. led 2007
Bydliště: hl.m. piva
Kontaktovat uživatele:

Re: databáze součásti javy

Příspěvek od yuri.cs »

proklepnul bych ten argument 'name'. ta cesta k DB musi mit nejakej tvar, tak treba neni dodrzenej a nemuze se tak nakonektit
It will be amazing in case after 10GHz we will see 20GHz, 30GHz and so on, just like we witnessed the thorny way from 10MHz to 33MHz in the eighties. -xbitlabs.com
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: databáze součásti javy

Příspěvek od Václav Sedlář »

ok, podívám se...je ale zajímavé, že dám projekt na flešku,zkopíruju do dalších 3 pc s netbeansama a tam to jde
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: databáze součásti javy

Příspěvek od Václav Sedlář »

Díky moc, bylo to tím...do name jsem dávali jen název souboru...

Na 5 PC to nevadilo a vytvořilo dbs soubor ve složce s projektem (tak jak jsme potřebovali), ale jen můj notebook-debil musí mít napsanou celou cestu...

Teď je ale problém, jak napsat cestu aby to bylo ve složce s projektem? když dám

\\dbs.db

tak to vytvoří soubor na disku C...

Já ale nemůžu vědět, kam si to uživatel zkopíruje, takže nemůžu dát natvrdo cestu...

Edit:
Zatím to řeším tak, že zjistím pomocí System.getProperty("user.dir") cestu...
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: databáze součásti javy

Příspěvek od Václav Sedlář »

hmm, tak problém ...vadí mu háčky a čárky v cestě...

Takže:

Funguje:

Kód: Vybrat vše

String cesta="\\XXX\\";
nefunguje:

Kód: Vybrat vše

String cesta="\\Sdílená složka\\";
mezery nevadí:

Kód: Vybrat vše

String cesta="\\slozka x\\";
yuri.cs
Mírně pokročilý
Mírně pokročilý
Uživatelský avatar
Registrován: 03. led 2007
Bydliště: hl.m. piva
Kontaktovat uživatele:

Re: databáze součásti javy

Příspěvek od yuri.cs »

jo jo, nikdy nepouzivat tohle zlo jako je diakritika, mezery a dalsi non-ASCII veci v path!
Tohle jsou casto dost psycho veci na debug. Pomatuju na soubory pojenovany s mezerou pred nazvem.
It will be amazing in case after 10GHz we will see 20GHz, 30GHz and so on, just like we witnessed the thorny way from 10MHz to 33MHz in the eighties. -xbitlabs.com
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: databáze součásti javy

Příspěvek od Václav Sedlář »

Nojo, jenže:

1)jak to vyřešit, když si uživatel dá program do složky která má v názvu diakritiku?

2)nemůžu použít ani uživatelovu složku (v názvu účtu win mám taky diakritiku)

3)proč to dělá jen na mém notebooku?

Takže jediná možnost je nastavit natvrdo cestu např. C:/
W3N4
Začátečník
Začátečník
Registrován: 06. srp 2008

Re: databáze součásti javy

Příspěvek od W3N4 »

Tak nepouzivej absolutni cestu ale relativni, ne?

Jinak par poznamek:
- Dodrzuj konvence (metody zacinaji malym pismenem).
- Tady je to celkem jedno, vzhledem k tomu, ze pouzivas databazi v embedded modu, ale presto bych pouzival PreparedStatementy.
- Pokud vyjmku zachycujes, je zbytecne ji propagovat v signature metody.
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: databáze součásti javy

Příspěvek od Václav Sedlář »

no asi takto..tuto třídu která má na starost databázi dělal kolega v mé skupině...je to školní projekt...

ale samo, že kdyby to bylo něco oficiálního, tak to bude vypadat jinak...teď jsme v časovém presu...

zkusím relativní cestu a dám vědět...
W3N4 píše:Tak nepouzivej absolutni cestu ale relativni, ne?


- Pokud vyjmku zachycujes, je zbytecne ji propagovat v signature metody.
-sorry, to mi nějak ušlo, jsem si toho ani nevšiml...asi to tam šoupnul netbeans


P.S.: Když dám v netbeansech vytvoření spustitelné verze (Run->Clean a Build Main Project), tak pak už ta spustitelná verze funguvala i na mém notebooku...

EDIT:

Tak buďto zapisuji relativní cestu špatně, nebo to nejde:

Absolutní cesta je takto:

C:\Sdílená složka\STI_projekt\STI_projekt\databaze.db

zkoušel jsem to zapsat takto:

Soubor="..\\databaze.db"; -chyba

Soubor="STI_projekt\\databaze.db"; -cesta nenalezena, protože je v cestě navíc ta složka, když jí vytvořím, tak chyba jako předtím

Soubor="..\\STI_projekt\\databaze.db"; -chyba


EDIT2:

ještě jsem si s tím hrál a dal jsem cestu jako:

\\databaze.db

a dal Clean a Build Main Project a spustil

teď už to háže jiný problém - databázi asi najde, ale vadí že v ní jsou záznamy s diakritikou...

a k tomu to začalo ignorovat mojí cestu a bere to nějaký starý soubor s databází
W3N4
Začátečník
Začátečník
Registrován: 06. srp 2008

Re: databáze součásti javy

Příspěvek od W3N4 »

A zkousel jsi proste cestu:
databaze.db
nebo pripadne:
.\databaze.db

(ted si ale nejsem jisty, jestli tecka na windowsu znaci aktualni adresar, stejne jako na unixu)

Btw mozna by nebylo na skodu hodit sem tu chybu, vcetne cele stacktrace pokud se jedna o vyjmku.
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: databáze součásti javy

Příspěvek od Václav Sedlář »

zkoušel jsem tečku a to nejde...myslím že to bralo jako adresář s názvem tečka

dám výpis chyb...

ale zajímavé je, že to blbne jen ve vývoj.prostředí...když z toho udělám spustitelný, tak to funguje

edit1:

zde: http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC je napsáno, že hláška out of memory znamená:
catch(SQLException e)
{
// if the error message is "out of memory",
// it probably means no database file is found
System.err.println(e.getMessage());
}
EDIT2:

zde je komplet výpis e.printStackTrace():

Kód: Vybrat vše

[color=#FF4000]
java.sql.SQLException: out of memory
        at org.sqlite.DB.throwex(DB.java:288)
        at org.sqlite.NestedDB._open(NestedDB.java:73)
        at org.sqlite.DB.open(DB.java:77)
        at org.sqlite.Conn.<init>(Conn.java:88)
        at org.sqlite.JDBC.connect(JDBC.java:64)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:207)
        at database.RiverDatabase.CreateTable2(RiverDatabase.java:44)
        at sti_projekt_gaficky.STI_projekt_gafickyView.<init>(STI_projekt_gafickyView.java:59)
        at sti_projekt_gaficky.STI_projekt_gafickyApp.startup(STI_projekt_gafickyApp.java:19)
        at org.jdesktop.application.Application$1.run(Application.java:171)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
[/color]
Odpovědět

Zpět na „Programování a web“