Die Klasse ResultSetXml ist eine generische Unterklasse der Klasse JXml. Diese Klasse ist dafür konzipiert, aus jedem gültigen SQL-Statement in jeder SQL-Tabelle ein XML-Ergebnisdokument zu erzeugen. Außerdem bietet sie Methoden zur Validierung des, für den Zugriff auf das und zur Aktualisierung des XML Result Set-Dokuments. Wir werden hier XML Result Sets mit der ResultSetXml Klasse erzeugen.
Der Quellcode und Javadoc für die ResultSetXml Klasse befinden sich im folgenden Sybase Server Verzeichnis (abhängig von der Plattform):
$SYBASE/ASE-12_5/sample/JavaSql (UNIX) %SYBASE%ASE-12_5sampleJavaSql (Windows NT)
Erzeugen eines XML Result Sets
Für dieses Beispiel werden wir die Tabellen benutzen, die wir im letzten Artikel erstellt und ausgefüllt haben (Listing A).
Die SQL in (Listing B) erzeugt die mit den Beispieldaten zu verwendenden Tabellen. Sie enthält die Standard-SQL zum Ausfüllen der Tabelle Orders.
Das Beispiel in (Listing C) erzeugt eine SQL-Anweisung vom Client, das die Server-Tabellen, die wir in Listing A erzeugt haben, anfordert. Es verwendet dann die Constructor-Methode ResultSetXml, um ein ResultSetXml-Objekt zu erzeugen. Wir erzeugen dann eine Datei OrderResultSet.xml, die wir als nächstes betrachten werden. Im oben genannten Beispiel würden wir jdbc:default:connection als Login Information verwenden (oder das Feld einfach leer lassen), wenn wir das Code Fragment auf dem Server ausführen würden.
Das Dokument ResultSetXml, das wir erzeugt haben, enthält sowohl den Abschnitt ResultSetMetaData als auch den Abschnitt ResultSetData. Dieses Dokument ResultSetXml entspricht dem folgenden Format:
<?xml version="1.0"?> <!DOCTYPE ResultSet SYSTEM 'ResultSet.dtd'> <ResultSet> <ResultSetMetaData> ... </ResultSetMetaData> <ResultSetData> ... </ResultSetData> </ResultSet>
Das vollständige Dokument, das in Listing D zu sehen ist, enthält das Dokument ResultSetXml (im Dateiordner OrderResultSet.xml), das von unserem Beispiel erzeugt wurde.
ResultMetaData, der erste Abschnitt eines ResultSetXml-Dokuments (Listing D), enthält die Informationen, die nicht direkt einer bestimmten Spalte zugeordnet sind, gefolgt von ColumnMetaData. Die Attribute von ColumnMetaData beziehen sich direkt auf die JDBC-Methoden der Klasse ResultMetaData . Der nächste Abschnitt, ResultSetData, enthält die tatsächlichen Zeilenelemente, von denen jedes die Namen und die Daten der Spaltenattribute enthält.
Die ResultSetXml-DTD
Die DTD (Dokumenttyp-Definition) ResultSet.dtd für das Dokument ResultSetXml in Listing E beschreibt unser ResultSetXml-Dokument.
Hier eine kurze Erläuterung der DTD in Listing E:
Speicheroptionen
Für die Speicherung von ResultSetXML.xml verfügen wir über dieselben Optionen, die wir im vorangegangenen Artikel bei der OrderXML Custom-Klasse betrachtet haben. Element-, Dokument- und Hybridspeichertechnik sind möglich. In unserem nächsten Artikel werden wir näher auf diese Möglichkeiten eingehen.
Wie geht es weiter?
In unserem letzten Artikel haben wir die XML Speicher- und Auslesemöglichkeiten in Sybase ASE (Adaptive Server Enterprise) behandelt, die sich durch die Fähigkeit von ASE ergeben, Java Custom-Klassen zu verwenden. Wir haben die Klasse ResultSetXml untersucht und auch die DTD und das XML-Dokument, das sie beschreibt, und wir haben ein Code-Fragment untersucht, der aus einer einfachen SQL SELECT-Anweisung sowohl auf dem Client als auch auf dem Server ein ResultSetXml-Dokument erzeugt. Inzwischen ist wahrscheinlich klar geworden, dass das ResultSetXml-Dokument – anders als die OrderXml Klasse in unserem letzten Artikel – zur Beschreibung eines beliebigen Ergebnissatzes , aber nicht zur Erzeugung eingebetteter Knoten benutzt werden kann. Dies ist nur durch Erzeugung einer speziellen Java-Klasse möglich, die nur mit einem scharf umgrenzten Satz von Daten verwendet werden kann. Eine Custom-Klasse kann zum Anlegen von mehr als einer Dokumentenform verwendet werden. Dies ist ein weiterer Grund dafür, dass eine Java Virtual Machine auf dem Server so ein mächtiges Werkzeug ist.
Im nächsten Artikel untersuchen wir die Umsetzung von ResultSetXml sowohl auf dem Client als auch dem Server sowie den Zugriff auf die Spalten eines gespeicherten ResultSetXml-Dokuments mit der Document Storage Methode als Spalte einer SQL-Tabelle. Wir werden in nahezu der gleichen Art, wie man eine WHERE-Klausel in einer normalen SQL-Anweisung verwenden würde, auch einen quantitativen Vergleich mit der Dokumentenspeicher-Methode vornehmen.
Die durchschnittliche Lösegeldzahlung liegt bei 2,5 Millionen Dollar. Acht Prozent der Befragten zählten 2023 mehr…
Eine neue Analyse der EU-Kommission sieht vor allem eine hohe Verbreitung von iPadOS bei Business-Nutzern.…
Das operative Ergebnis wächst um fast 6 Billionen Won auf 6,64 Billionen Won. Die Gewinne…
Ab Werk blockiert Chrome Cookies von Dritten nun frühestens ab Anfang 2025. Unter anderem gibt…
Die Vorfreude steigt, denn BAUMLINK wird als Partner und Aussteller bei der Tech Show 2024…
Nutzung einer unternehmenseigenen GPT-Umgebung für sicheren und datenschutzkonformen Zugriff.