> Inhalt: Einführung in das Programmieren mit Java > Inhalt: Einführung in das Programmieren von Enterprise Java Beans 

Tutorial: Session Bean mit Datenbank-Zugriff (Java_EJB_03) – Maßnahmen für den Zugriff auf eine MySQL-Datenbank

* Bitte beachten Sie die Hinweise und Bestimmungen bezüglich Urheberrecht, Haftungsausschluß und geschützte Marken oder Warenzeichen die für dieses Web-Dokument und möglicherweise auch für 'verlinkte' Dokumente gelten.

  • Der Betreiber dieser Web-Site (www.javascout.biz) ist nicht verantwortlich für den Inhalt von Web-Sites, die innerhalb dieses Web-Dokumentes oder anderer Dokumente von www.javascout.biz verlinkt sind.

  • Wenn dieses Web-Dokument oder andere Dokumente dieser Web-Site (www.javascout.biz) Rechte von Ihnen verletzen, oder sie glauben, daß Rechte Anderer (Dritter Personen) dadurch verletzt werden, informieren Sie bitte den Betreiber dieser Web-Site.
    Eine E-Mail können Sie ganz einfach durch anklicken des Symbols oder Textes im Frame rechts oben senden.

Dieses Dokument drucken.

 Letzte Bearbeitung dieses  Dokuments:
2008-02-28



Voraussetzungen für das Verständnis dieses Dokuments:

Grundverständnis der Software-Entwicklung und des Datenbank-Entwurfes.

Dieses Dokument ist ein Teil des Tutorials Session Bean mit Datenbank-Zugriff (Java_EJB_03) – Einrichten des Projects und folgenden Dokumenten – kann aber auch alleine als Referenz verwendet werden, wie das MySQL-Datenbanksystem mit dem JBoss Java-Application-Server (JAS) verwendet wird.

Ungefährer Zeitbedarf zum Durcharbeiten dieses Dokuments:

Arbeitszeit:
Ca.
.

Die Anleitung in diesem Dokument beschreibt die Maßnahmen, um JBoss mit einem MySQL-Datenbanksystem zu betreiben.
Dieses Dokument ist Teil des Tutorials Session Bean mit Datenbank-Zugriff.

Gegenüber dem im Java-Application-Server (JAS) JBoss integrierte Hypersonic ist MySQL ein Datenbanksystem für professionelle Verwendung.

In diesem Dokument wird beschrieben, welche Veränderungen notwendig sind, um MySQL für die Datenspeicherung zu verwenden.

Nach der Installation der notwendigen Dateien werden 2 Möglichkeiten zur Veränderung der META-INFormation eines EJB vorgestellt:
* Änderung des XDoclet-Parameters im Code des EJB.
   Damit wird eine Datei mit der passenden XML-Struktur erzeugt.
* Nachträgliche Änderung der Datei mit der verantwortlichen XML-Struktur.
Die nachträgliche Änderung ist dann notwendig, wenn eine Software bei der Installation an die bestehende Umgebung (JAS und DB-System) angepaßt werden muß.

Inhaltsverzeichnis:

Vorigerer Schritt: Packen in JAR-Dateien und 'deploy' 

Vorbedingungen 
Datenbank-Tabelle in MySQL erstellen 
XML-Datei für die 'Datasource' MySQL bearbeiten 
Allgemeine Bemerkungen zum Namen einer 'Datasource'-Datei 
Zuordnung der Datasource über XDoclet-Parameter verändern 
Zuordnung der Datasource durch Editieren der XML-Datei verändern 
Test 
Weitere Schritte und verwandte Dokumentation 

Nächste Schritte:
Tutorial: Client-Programm für Session Bean mit Datenbank-Zugriff (Java_EJB_04) 

Dank für Vorarbeiten

Eine Anleitung unter http://wiki.jboss.org/wiki/Wiki.jsp?page=SetUpAMysqlDatasource. enthält eine leicht verständliche Erklärung mit Beispielen.
Ein großer Dank an den/die anonymen Autor/en

Vorbedingungen:

zum Inhaltsverzeichnis

Datenbank-Tabelle in MySQL erstellen

Die folgenden Anweisungen setzen voraus, daß die Datenbank 'js_tutorial' so wie unter MySQL Datenbank für die Verwendung mit Java-Programmen einrichten erstellt wurde und auch die Rechte wie beschrieben an den Benutzer 'mysql' vergeben wurden.

Öffnen Sie ein 'Terminal'-Fenster durch Auswahl von Anwendungen > Systemwerkzeuge > Terminal.

  


Zum Aufrufen des Datenbank-Monitors geben Sie im 'Terminal'-Fenster folgendes Kommando ein:
mysql –host='127.0.0.1' –user='mysql' -p js_tutorial

Geben Sie nach der Aufforderung das Passwort ein.

Daraufhin meldet sich der Datenbank-Monitor und wartet auf die Eingabe von SQL-Kommandos.


Erstellen Sie die neue Datenbank mit folgendem SQL-Kommando:
create table Chat (Erstellt_TS timestamp not null primary key, Erstellt_TCPIP_Adresse char(15), Message_Text varchar(2040));

Bitte beachten Sie, daß Sie das SQL-Kommando in einer Zeile oder über mehrere Zeilen verteilt schreiben können aber mit einem Strichpunkt (;) abschließen müssen !

Beenden Sie den Datenbank-Monitor durch das Kommando quit und schließen Sie das Terminal-Fenster durch das Kommando exit.


zum Inhaltsverzeichnis

XML-Datei für die 'Datasource' MySQL bearbeiten

Eine Muster-Datei für eine MySQL-'Datasource' wird bei der Installation von JBoss unter dem Verzeichnis-/Datei-Namen '/opt/jboss/docs/examples/jca/mysql-ds.xml' installiert.

Diese Datei wird unter gleichem Dateinamen in das Verzeichnis '/opt/jboss/server/default/deploy' kopiert.


Dabei können folgende Teile des Verzeichnisses bei Ihrer Installation vom Beispiel abweichen:

Als Datenbank wird jene verwendet, die im MySQL Datenbank für die Verwendung mit Java-Programmen einrichten erstellt wurde.

Eine detaillierte Beschreibung der individuellen Werte folgt anschließend an die Beispiel-Datei; klicken Sie bitte auf die jeweiligen Zeilen um zur Beschreibung zu gelangen.

<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mysql-ds.xml 63175 2007-05-21 16:26:06Z rrajesh $ -->
<!-- Datasource config fpr MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->

<datasources>
  <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <connection-url>jdbc:mysql://127.0.0.1:3306/js_tutorial</connection-url>
    <user-name>mysql</user-name>
    <password>drowssap</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <!-- Should only be used on drivers after 3.22.1 with "ping" support -->
    <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
  <!-- -->
  <!-- sql to call when connection is created
  <new-connection-sql>some arbitrary sql</new-connection-sql>
  -->
  <!-- sql to call on existing pooled connection when it is obtained from pool -
  MySQLValidConnectionChecker is preferred for newer drivers
  <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
  -->
    <metadata>
      <type-mapping>
mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

zum Inhaltsverzeichnis

Allgemeine Bemerkungen zum Namen einer 'Datasource'-Datei

Die XML-Struktur mit der Definition einer 'Datasourde' kann in einer Datei mit beliebigem Namen enthalten sein.
Die vorher beschriebene XML-Struktur könnte auch in einer Datei mit dem Namen 'srqp-fdsa.xml' abgespeichert sein.
JBoss und andere JAS durchsuchen alle Dateien im jeweiligen Unterverzeichnis 'deploy' und reagieren nur auf die entsprechenden Element-Namen einer vorhandenen XML-Struktur.

Zu welchem Datenbanksystem dann die Verbindung hergestellt wird hängt allein von den Parametern in den XML-Elementen <driver-class> und <connection-url> ab.

Trotzdem ist zu empfehlen, die Namen der Beschreibungsdateien so zu wählen, daß das verwendete Datenbanksystem erkennbar ist.

Zu beachten ist, daß der Name im XML-Element <jndi-name> ('MySqlDS' in diesem Beispiel) nur einmal in allen Dateien vorkommen darf !

Der beschriebene Mechanismus erlaubt auch, aus einem Programm auf mehrere Datenbanken – auch verschiedener Datenbanksysteme oder auf verschiedenen Computern – zuzugreifen.

Die Definition mehrerer 'Datasources' kann auch in einer Datei erfolgen. Dazu ist nur notwendig, den Bereich <local-tx-datasource> der XML-Struktur mehrmals – mit verschiedenen Parametern – in einer Datei einzutragen.

zum Inhaltsverzeichnis

Zuordnung der Datasource über XDoclet-Parameter verändern

Während der Erstellung des Codes für das EJB erfolgt eine Festlegung der Zuordnung zwischen den internen und externen Bezeichnungen der 'Datasource' über XDoclet-Parameter. Eine Erklärung dazu finden Sie unter Schritt 2: Codieren > XDoclet-Anweisungen des ChatManagementBean codieren.

Hier der Ausschnitt aus dem Code:
 * ----------------------
 * @ejb.resource-ref res-ref-name = "jdbc/Chat_DS"
 *                   res-type = "javax.sql.Datasource"
 *                   res-auth = "Container"
 * 
 * Anweisungen für XDoclet die dem JBoss Java Application Server mitteilen,
 * daß das vordefinierte Default-Dataset des in JBoss integrierten
 * Hypersonic Datenbank-Systems verwendet werden soll.
 * ----------------------
 * @jboss.resource-ref res-ref-name = "jdbc/Chat_DS"
 *                     jndi-name = "java:/DefaultDS"
 *
 * @description
 *  Klasse für das Session-Bean mit Datenbank-Zugriff aus dem Tutorial Java_EJB_03.

Durch Ändern des XDoclet-Parameters wird in weiterer Folge die veränderte Zuordnung generiert.
Hier ein Beispiel, wie die unter
XML-Datei für die 'Datasource 'MySQL' bearbeiten definierte MySQL-Datenbank verwendet wird:
 * Anweisungen für XDoclet die dem JBoss Java Application Server mitteilen,
 * daß das vordefinierte Default-Dataset des in JBoss integrierten
 * Hypersonic Datenbank-Systems verwendet werden soll.
 * ----------------------
 * @jboss.resource-ref res-ref-name = "jdbc/Chat_DS"
 *                     jndi-name = "java:/MySqlDS"

Die im Beispiel verwendeten XDoclet-Anweisungen sind für eine Verwendung des JBoss Java Application Server.
Wenn Sie einen anderen JAS verwenden orientieren Sie sich bitte an den Beispielen des Herstellers Ihres verwendeten JAS.

Der gesamte Code des EJB ist unter Schritt 2: Codieren > Kompletter Code des Session Bean zu finden.

zum Inhaltsverzeichnis

Zuordnung der Datasource durch Editieren der XML-Datei verändern

Dieser Teil beschreibt, wie in einer fertig generierten JAR-Datei mit dem EJB und den XML-Dateien die Zuordnung zwischen internem und externem Namen der 'Datsource' verändert wird.

Diese Prozedur kann aus 2 Gründen notwendig sein:

Rufen Sie durch Anklicken des Symbols Computer mit der rechten Maustaste den Datei-Browser auf.

  

Manövrieren Sie über das Dateisystem in das Verzeichnis /opt/jboss/server/default/deploy; in diesem ist die Datei 'Java_EJB_03.jar' abgelegt.


Markieren Sie die Datei 'Java_EJB_03.jar' und klicken Sie die rechte Maustaste.
Aus dem Kontext-Menu wählen Sie bitte Mit >Archivmanager< öffnen.


Der Inhalt eines Unterverzeichnis wird durch einen Doppel-Klick mit der linken Maustaste angezeigt.
Wählen Sie auf diese Weise das Unterverzeichnis 'META-INF' (nicht abgebildet).

Markieren Sie anschließend die Datei 'jboss.xml' und klicken Sie auf die Schaltfläche [ Entpacken ].

'jboss.xml' ist die spezielle Datei für den JBoss Java Application Server (JAS).
Wenn Sie einen anderen JAS verwenden und dieses Dokument als generelle Anleitung, wie die META-Information eines EJB geändert werden kann, wird die spezielle Datei für Ihren JAS einen anderen Dateinamen haben oder eventuell noch gar nicht vorhanden sein.


Vermeiden Sie, die Datei in das 'deploy'-Verzeichnis von JBoss zu entpacken. Wenn Sie zum Abschluß der Änderung vergessen, die Datei zu löschen kann das zu unerwartetem Verhalten von JBoss führen.

Ein harmloser Platz ist das Verzeichnis 'Desktop' des angemeldeten Benutzer ('kurti-o' in diesem Beispiel) – damit bleibt die Datei auf der Benutzeroberfläche sichtbar.

Verändern Sie die markierten Auswahlmöglichkeiten für Dateien und Aktionen nicht und starten Sie durch Anklicken der Schaltfläche [ Entpacken ].


Die Datei ist jetzt auf der Benutzeroberfläche sichtbar.

Markieren Sie die Datei und rufen Sie durch Anklicken der rechten Maustaste das Kontext-Menu auf.

Wählen Sie daraus Öffnen mit > Mit >Texteditor< öffnen aus.


Ändern Sie die Zeile
<jndi-name>java:/DefaultDS</jndi-name>
auf
<jndi-name>java:/MySqlDS</jndi-name>
und speichern Sie die Änderung durch Anklicken der Schaltfläche
[ Speichern ].

Schließen Sie anschließend das Fenster.


Um die geänderte Datei wieder in die JAR-Datei zu packen, klicken sie bitte die Schaltfläche [ Dateien hinzufügen ] an.


Manövrieren zu dem Verzeichnis in das Sie die (inzwischen geänderte) Datei 'jboss.xml' entpackt haben;
markieren Sie die Datei und
klicken Sie die Schaltfläche [ Hinzufügen ] an.


zum Inhaltsverzeichnis

Test

Ein Test ist im Tutorial: Client-Programm für Session Bean mit Datenbank-Zugriff (Java_EJB_04) enthalten und kann erst ausgeführt werden wenn das Tutorial abgeschlossen ist.

zum Inhaltsverzeichnis

Weitere Schritte und verwandte Dokumentation

Dokument

Inhalt

Tutorial: Client-Programm für Session Bean mit Datenbank-Zugriff (Java_EJB_04)  

Im nächsten Tutorial wird ein Client-Programm für das Session Bean mit Datenbank-Zugriff entwickelt.

zum Inhaltsverzeichnis