se seznámili s použitím Caché anotací. Jenom krátká
poznámka k minulému dílu; není nutno definovat anotace
ke každé vlastnosti nebo ke třídě jako celku, stačí je
definovat pouze tam, kde potřebujeme jít nad rámec
čistých objektů (např. anotace pro indexy apod.), nebo
tam kde chceme systému vnutit jiné nežli výchozí
hodnoty.
Dnes si předvedeme, jak přeneseme informace o
třídách do Caché.
K vytvoření tříd v Caché můžeme jednak použít
průvodce, jednak spustit tvůrce schémat pomocí
příkazového řádku. Některá IDE, jako například
NetBeans obsahují přímo Jalapeno plugin, takže
nemusíme používat příkazový řádek vůbec.
Začněme nejdříve průvodcem. Ten se spouští z
príkazové řádky příkazem
java -classpath <cesta ke CacheDB.jar>
.
com.intersys.pojo.tools.SchemaBuilderWizard
Po spuštění se otevře GUI formulář, do kterého se
zadají přihlašovací údaje pro databázi Caché. Těmito
údaji jsou IP adresa, port, uživatelský účet a heslo.
Stisknutím tlačítka ShowNamespaces
se
přihlásíme a vybereme příslušný názvový prostor Caché,
ve kterém budeme pracovat.
Na následující stránce průvodce zvolíme jako
způsob mapování tříd do Caché „Use
, ostatní volby ponecháme beze
annotations"
změny a přejdeme na další stránku. Poznámka na okraj,
všimněte si ze Caché podporuje též anotace mapovacího
nástroje Hibernace, přesněji řečeno, Caché anotace
jsou certifikovány jako dialekt Hibernate.
Dále zvolíme, odkud budeme číst třídy, zda z jar
či zip archivů nebo zda budeme číst jednotlivé
(zkompilované) třídy.
Na další, již poslední stránce průvodce, vybereme
příslušné archívy nebo jednotlivé třídy a tlačítkem
Generate
spustíme vytváření definic
tříd v Caché.
Hodnota každého vstupního pole v průvodci se
ukládá, s výjimkou hesla, do souboru SchemaBuilder.properties
. Odtud jsou hodnoty
při spuštění načteny. Při prvním spuštění se tento
soubor vytvoří s výchozími hodnotami. Tento textový
soubor lze editovat libovolným editorem. Vzorový
obsah souboru je zde:
SchemaBuilder.properties
#Thu Oct 26 10:08:31 CEST 2006
com.intersys.schemabuilder.defaultjavaprojectionpackage=
com.intersys.schemabuilder.defaultaccesstype=getters
and setters
com.intersys.schemabuilder.classpath=C\:\\Software\\Projects\\Java\\netbeans
projects\\ucto\\build\\classes\\
com.intersys.schemabuilder.merge=false
com.intersys.schemabuilder.classes=C\:\\Software\\Projects\\Java\\netbeans
projects\\ucto\\build\\classes\\ucto\\polozka.class;C\:\\Software\\Projects\\Java\\netbeans
projects\\ucto\\build\\classes\\ucto\\faktura.class
com.intersys.schemabuilder.projectiondir=C\:\\Software\\CacheSys\\Dev\\java\\lib\\JDK15\\.
com.intersys.schemabuilder.source=classes
com.intersys.schemabuilder.exclude=
com.intersys.schemabuilder.rootdir=
com.intersys.schemabuilder.port=1972
com.intersys.schemabuilder.host=localhost
com.intersys.schemabuilder.namespace=USER
com.intersys.schemabuilder.metadata=annotations
com.intersys.schemabuilder.logfile=
com.intersys.schemabuilder.defaultaccesslevel=protected
com.intersys.schemabuilder.user=_SYSTEM
com.intersys.schemabuilder.generationtype=0
Spuštění tvůrce schémat z příkazové řádky se
provede takto:
java.exe -classpath <cesta k
CacheDB.jar> com.intersys.pojo.tools.SchemaBuilder
-f <cesta k souboru s definicemi parametrů>
Nyní si ještě ozřejmíme význam nejdůležitějších
parametrů.
Defaultjavaprojectionpackage |
Určuje, do jakého balíčku se budou tvořit |
Generationtype |
Bitmapa určující, zda a jaké typy projekcí |
Projectiondir |
V případě, že generationtype parametr |
Metadata |
Specifikuje, jaký typ metadat se má z |
Host |
IP adresa nebo název serveru Caché |
Port |
Port na kterém naslouchá Caché |
Source |
Určuje, z jakého zdroje se mají generovat |
Merge |
Určuje, zda ma kompilátor Caché vytvořit |
Logfile |
Určuje název logovacího souboru pro |
Pokud do souboru s parametry vložíme řádek com.intersys.schemabuilder.password=<heslo>
, nebude se nás pro příště tvůrce ptát na heslo a
rovnou se připojí k databázi. Samozřejmě musíme dobře
zvážit riziko umístění hesla v otevřené textové
podobě do souboru v počítači!
V příštím díle se seznámíme s API Jalapeno
knihovny a dokončíme příklad z druhého dílu toto
seriálu.