Raible's Wiki

Raible Designs
Wiki Home
News
Recent Changes

AppFuse

Homepage
  - Korean
  - Chinese
  - Italian
  - Japanese

QuickStart Guide
  - Chinese
  - French
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish
  - Japanese

User Guide
  - Korean
  - Chinese

Tutorials
  - Chinese
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish

FAQ
  - Korean

Latest Downloads

Other Applications

Struts Resume
Security Example
Struts Menu

Set your name in
UserPreferences


Referenced by
Articles
Articles_de
CreateManager_de
LeftMenu




JSPWiki v2.2.33

[RSS]


Hide Menu

CreateDAO_de


Difference between version 35 and version 32:

At line 186 changed 1 line.
Jetzt erzeugen wir einen DaoTest, um zu überprüfen, ob unsere DAO Klasse funktioniert. "Halt, halst," werden sie sagen, "wir haben noch gar keine DAO Klasse erzeugt!" Da haben sie natürlich Recht. Wie auch immer, ich bin der Meinung, dass [Test-Driven Eintwicklung|http://www.artima.com/intv/testdriven.html] qualitataiv hochwertigere Software hervorbringt. Lange Zeit dachte ich, __schreib erst die Tests bevor die Klasse schreibst__ ist Unsinn. Es kam mir einfach dumm vor. Dann versuchte ich es, und fand heraus, dass es wunderbar funktioniert. Der einzige Grund, warum ich jetzt all diese test-driven Dinge verwende, ist, weil ich herausgefunden habe, dass es immens den Prozesses der Software Entwicklung beschleunigt.
Jetzt erzeugen wir einen DaoTest, um zu überprüfen, ob unsere DAO Klasse funktioniert. "Halt, halt," werden sie sagen, "wir haben noch gar keine DAO Klasse erzeugt!" Da haben sie natürlich Recht. Wie auch immer, ich bin der Meinung, dass [Test-Driven Eintwicklung|http://www.artima.com/intv/testdriven.html] qualitativ hochwertigere Software hervorbringt. Lange Zeit dachte ich, __schreib erst die Tests bevor du die Klasse schreibst__ ist Unsinn. Es kam mir einfach dumm vor. Dann versuchte ich es, und fand heraus, dass es wunderbar funktioniert. Der einzige Grund, warum ich jetzt all diese test-driven Dinge verwende, ist, weil ich herausgefunden habe, dass es immens den Prozess der Software Entwicklung beschleunigt.
At line 188 changed 1 line.
Für den Anfang erzeugt man eine {{PersonDaoTest.java}} Klasse im {{test/dao/**/dao}} Verzeichnis. Diese Klasse sollte von der Klasse [BaseDaoTestCase|http://raibledesigns.com/downloads/appfuse/api/org/appfuse/dao/BaseDaoTestCase.java.html] abgeleitet werden (die bereits in diesem Package vorhanden ist), einer Unterklasse von Spring's [AbstractDependencyInjectionSpringContextTests|http://www.springframework.org/docs/api/org/springframework/test/AbstractDependencyInjectionSpringContextTests.html] Klasse. Diese Superklasse wird zum Laden von [Spring's|http://www.springframework.org] ApplicationContext (da Spring doe Schichten miteinander verbindet) genutzt, und (optional) zum Laden einer .properties Datei (ResourceBundle), welche den selben Namen wie ihre {{*Test.class}} besitzt. Falls sie in diesem BEispiel eine Datei namens {{PersonDaoTest.properties}} in dem gleichen Verzeichnis wie das der Datei erzeugen, ist der Inhalt dieser Datei in einer "rb" Variable verfügbar.
Für den Anfang erzeugt man eine {{PersonDaoTest.java}} Klasse im {{test/dao/**/dao}} Verzeichnis. Diese Klasse sollte von der Klasse [BaseDaoTestCase|http://raibledesigns.com/downloads/appfuse/api/org/appfuse/dao/BaseDaoTestCase.java.html] abgeleitet werden (die bereits in diesem Package vorhanden ist), einer Unterklasse von Spring's [AbstractDependencyInjectionSpringContextTests|http://www.springframework.org/docs/api/org/springframework/test/AbstractDependencyInjectionSpringContextTests.html] Klasse. Diese Superklasse wird zum Laden von [Spring's|http://www.springframework.org] ApplicationContext (da Spring doe Schichten miteinander verbindet) genutzt, und (optional) zum Laden einer .properties Datei (ResourceBundle), welche den selben Namen wie ihre {{*Test.class}} besitzt. Falls sie in diesem Beispiel eine Datei namens {{PersonDaoTest.properties}} in dem gleichen Verzeichnis wie das der Datei erzeugen, ist der Inhalt dieser Datei in einer "rb" Variable verfügbar.
At line 190 changed 1 line.
;:%%(color: blue)''I kopiere (open → save as) normalerweise einen bereits vorhandenen Test (z.B. UserDaoTest.java) und suche/ersetze [[Uu]ser mit [[Pp]erson, oder wie auch immer der Name meines Objektes lautet.''%%
;:%%(color: blue)''Ich kopiere (open → save as) normalerweise einen bereits vorhandenen Test (z.B. UserDaoTest.java) und suche/ersetze [[Uu]ser mit [[Pp]erson, oder wie auch immer der Name meines Objektes lautet.''%%
At line 306 changed 1 line.
Zurzeit wird der PersonDaoTest noch nicht comilieren, da noch keine PersonDaoHibernate.class im classpath existiert. Diese müssen wir erzeugen. PersonDAO.java ist ein Interface, und PersonDAOHibernate.java ist die Hibernate Implementierung dieses Interfaces. Dann wollen wir diese beiden mal erzeugen.
Zurzeit wird der PersonDaoTest noch nicht comilieren, da noch keine PersonDaoHibernate.class im classpath existiert. Diese müssen wir erzeugen. PersonDao.java ist ein Interface, und PersonDaoHibernate.java ist die Hibernate Implementierung dieses Interfaces. Dann wollen wir diese beiden mal erzeugen.
At line 329 changed 1 line.
Beginnen wir mit der Erstellung einer PersonDaoHibernate Klasse, die die Methoden von PersonDao implementiert und Hibernate nutzt, um das Person Objekt zu laden / zu speichern / und zu löschen. Um dies zu tun, erzeugt man eine neue Klasse im Verzeichnis {{src/dao/**/dao/hibernate}} und nennt diese {{PersonDAOHibernate.java}}. Sie sollte von der Klasse [BaseDaoHibernate|http://raibledesigns.com/downloads/appfuse/api/org/appfuse/dao/BaseDAOHibernate.java.html] abgeleitet sein und das Interface PersonDAO implementieren. ''Zur Kürzung wurden die Javadocs entfernt.''
Beginnen wir mit der Erstellung einer PersonDaoHibernate Klasse, die die Methoden von PersonDao implementiert und Hibernate nutzt, um das Person Objekt zu laden / zu speichern / und zu löschen. Um dies zu tun, erzeugt man eine neue Klasse im Verzeichnis {{src/dao/**/dao/hibernate}} und nennt diese {{PersonDaoHibernate.java}}. Sie sollte von der Klasse [BaseDaoHibernate|http://raibledesigns.com/downloads/appfuse/api/org/appfuse/dao/BaseDAOHibernate.java.html] abgeleitet sein und das Interface PersonDao implementieren. ''Zur Kürzung wurden die Javadocs entfernt.''
At line 364 changed 1 line.
Wenn man jetzt versucht __ant test-dao -Dtestcase=PersonDao__ auszuführen, erhält man den selben Fehler. Wir müssen noch Spring so konfigurieren, dass es weiß, dass PersonDaoHibernate die implementierende Klasse zum Interface PersonDAO ist. Desweiteren müssen wir Spring mehr über das Objekt Person erzählen.
Wenn man jetzt versucht __ant test-dao -Dtestcase=PersonDao__ auszuführen, erhält man den selben Fehler. Wir müssen noch Spring so konfigurieren, dass es weiß, dass PersonDaoHibernate die implementierende Klasse zum Interface PersonDao ist. Desweiteren müssen wir Spring mehr über das Objekt Person erzählen.
At line 378 removed 1 line.
<value>org/appfuse/model/UserCookie.hbm.xml</value>

Back to CreateDAO_de, or to the Page History.