Vor einiger Zeit wurde MQ installiert. Nun folgt endlich ein Beispiel wie man in Java MQ ansprechen kann. Dabei wird JMS (Java Message Servic) ohne JNDI (Java Naming and Directory Interface) verwendet. Ein JNDI-Beispiel folgt in einem späteren Blog.
read more…
Beim Leeren von Datenbank-Tabellen müssen immer die vorhandenen Constraints beachtet werden. Das Löschen von Tabellen-Zeilen, obwohl andere darauf verweisen, ist nicht erlaubt (referenzielle Integrität).
Versucht man es doch (mittels TRUNCATE [1]) kriegt man eine Fehlermeldung.
Hier kann man nun entweder DELETE Statements [2] nutzen, was länger dauern kann, oder man verwendet doch TRUNCATE und muss die vorhandenen Constraints löschen.
ALTER TABLE TableName DROP CONSTRAINT FK_ConstraintName
Durch das Löschen aller Constraints der betroffenen Tabelle kann diese dann mit TRUNCATE geleert werden.
Zum Hinzufügen der Constraints:
ALTER TABLE TableName WITH CHECK ADD CONSTRAINT FK_ConstraintsName FOREIGN KEY (columnName) REFERENCES TableNameReference (id)
Constraints können nur dann hinzugefügt werden, wenn sie nicht vorhanden sind. Mit einer Prüfung sieht das dann so aus:
IF NOT EXISTS (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE TABLE_NAME='TableName'
AND CONSTRAINT_NAME='FK_ConstraintName'
AND CONSTRAINT_TYPE='FOREIGN KEY')
/* SQL Statement to add constraint, see above listing */
Links:
[1] SQL Drop (TRUNCATE)
[2] SQL DELETE
[3] SQL FK Constraints
Caching ist eins der Aspekte welches man nicht unbedingt direkt in der Businesslogik verankern möchte. Hierzu empfehlt es sich eine AOP-Lösung. Mit AOP kann die Funktionalität einer Cache-Realisierung genutzt werden. Eins der populärsten Cache-Provider ist Ehcache.
In dem Umfeld von Spring kann man Ehcache folgendermaßen integrieren:
Java Server Faces (JSF) ist eine schöne Technologie für den Web-JEE-Bereich.
Es bietet eine gute Möglichkeit die Entkopplung der einzelnen Schichten einzuhalten und mit der Kombination von Facelets, kann sogar ein Grafiker einfacher damit arbeiten.
Bei JSF sind bestimmte “Aktionen” einer Methode zugeordnet. (Methode aus dem ManagedBean, normale Klasse welche in faces-config.xml festgeleg wird, bzw. bei Spring-Einsatz kann man das auch weglassen). D.h. eine Aktion “Kunde anlegen”, welches als Button dargestellt wird, wird mit der Methode CustomerController.add() gebunden.
Oft funktioniert das auch ohne Probleme. Man füllt das Formular aus und drückt den Button. JSF konstruiert den ComponentTree, stellt die Daten wieder in die Objekte und sollte irgendwann auch unsere Methode CustomerController.add() aufrufen. Jaein.
<h:form enctype=”multipart/form-data”>
Man beachte <code>enctype=”multipart/form-data” </code>. Das ist das Problem. Ein einfaches
<h:form>
funktioniert. Dann wird die Methode wieder auch aufgerufen!
Möchte man ein JSF Projekt unter IBM WebSphere Application Server 6.x nutzen, muss man ein paar Sachen bedenken:
Im IE (7) gibt es Probleme mit dem Change-Event bei einem Input-Feld, wenn dies auch Autocompletion von script.aculo.us[1] beinhaltet.
Im letzten Beitrag habe ich kurz JavaFX vorgestellt. Zu den theoretischen Daten folgt nun ein kleines praktisches Beispiel.
Das Beispiel basiert auf das Tutorial von SUN [1] und wurde um die Eigenschaft erweitert, dass das Applet auch auf dem Desktop verwendet werden kann.
Seit dem 04.12.2008 gibt es nun endlich die Version 1.0 von JavaFX. JavaFX ist eine Plattform um Rich Internet Applications für verschiedene End-Geräte zu erstellen. Im Idealfall realisiert man eine Anwendung, die dann später im Browser, auf dem Desktop und auf dem mobilen Gerät läuft. Für weitere Details sei auf die JavaFX-Seiten verwiesen [1] und [2].
Bei der Arbeit mit JavaScript kommt man irgendwann in die Situation durch ein Array zu iterieren. Dabei nutzt man nicht immer einfach indizierte Arrays, sondern oft auch Arrays mit Lücken in den Indizes oder sogar assoziative Arrays.
Diese letzten Varianten kann man eigentlich genauso durchlaufen, wie die erste, wenn da nicht der IE wäre. Der IE hat Probleme mit Lücken in Arrays.
read more…
Um schnell Diagramme bzw. Screendesign zu erstellen, empfehlt es sich das Firefox Add-on “Pencil” zu nutzen. Pencil bietet die gängisten HTML-Elemente (Inputfeld, Tabellenstruktur, Select-Boxen etc.) und ein paar zusätzliche Elemente (Notizen, Pfeile etc.) um somit in kurzester Zeit schöne Screendesigns zusammen zu klicken. Die einzelnen Elemente können gruppiert werden und an andere Elemten ausgerichtet werden. Jedes Element beinhaltet ein paar Einstellungsmöglichkeiten wie Farbe, Schriftart und Größe.