<< XML & Relationale DB >>
|
|
- Dörte Sommer
- vor 8 Jahren
- Abrufe
Transkript
1 XML & DB << XML & Relationale DB >> 1
2 XML & DB - RDBMS Das Problem: XML RDBMS 2 XML Daten sind als Bäume strukturiert. RDBMS sind tabellenorientiert. RDBMS können nur sehr aufwendig Bäume speichern.
3 Einsatz von RDBMS & XML XML & DB - RDBMS XML jdbc RDB index index Direkte Speicherung von XML Daten in eine Zelle (z.b. als CLOB) ist nicht immer die beste Idee. Man verliert die Möglichkeit gezielt nach gewissen Daten zu suchen. 3 Aufwendige Indexierung und Verwendung von speziellen DB Tools wären die Folge.
4 Einsatz von RDBMS & XML XML & DB - RDBMS xsl jdbc XML Mapping RDB index index Besserer Ansatz ist es die XML Daten in Tabellenform zu bringen (z.b. mit XSLT) so dass es die Rel. DB direkt speichern kann. 4 Bei der Umwandlung werden die Strukturdaten auf die Tabellen und deren Spalten gemappt.
5 XML & DB - RDBMS Mapping von XML auf RDBMS Tabellen Tabelle Tupels Feld Tabelle Feld Tupels XML RDBMS Eine Tabelle kann höchstens eine 3 stufige Hierarchie abbilden (Idealfall). 5
6 XML & DB - RDBMS Mapping von XML auf RDBMS Tabellen Tabelle Tabelle Tupels Feld 1:n PK FK RDBMS Bei grösseren Hierarchien müssen verknüpfte Tabellen (Relationen) eingesetzt werden 6 Das Einteilen von mehreren XML Teilstrukturen auf Tabellen wird shredding genannt.
7 XML & DB - RDBMS XML Speicherung in RDBMS Beispiel <?xml version="1.0"?> <catalog country="usa"> <cd> <title>empire Burlesque</title> <artist>bob Dylan</artist> <price>10.90</price> </cd>... </catalog>??? RDBMS 7
8 XML Schema des Beispielkatalogs XML & DB - RDBMS 8 <xs:schema xmlns:xs=" <xs:element name= catalog"> <xs:attribute name="country" type="xs:string"/> <xs:complextype> <xs:element name="cd"> <xs:complextype> <xs:sequence> <xs:element name="titel" type="xs:string"/> <xs:element name="author" type="xs:string"/> <xs:element name="price" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> </xs:complextype> </xs:element> </xs:schema> country title catalog cd artist Relationen price
9 XML Schema versus DB Model XML & DB - RDBMS t_catalog PK id XML Schema <xs> 1:n country PK t_cd id FK1 titel author preis catalog_id Das XML Schema ist in RDBMS dem Datenmodell gleich zusetzen 9
10 XML Schema versus DB Model XML & DB - RDBMS t_catalog XML Schema <xs> PK id country PK FK1 t_cd id titel author preis catalog_id DB Model XML Instanz <xml> 1 USA 1 xxxxxxx2 eeeeeee yyyyyyyy eeeeeee zzzzzzzzz eeeeee 33 Tabellen mit Records 10
11 Beispiel, fertig abgefüllte Tabellen XML & DB - RDBMS tcatalog id country 1 USA 2 AU. t_catalog PK id country tcd id title author price catalog_id 1 Empire Burlesque Bob Dylan 2 My World Anastasia PK FK1 t_cd id titel author preis catalog_id 11
12 Probleme XML & RDBMS: XML & DB - RDBMS XML Struktur muss ebenfalls in der Datenbank gespeichert werden (oder hardcodiert in Logik): Ist Inhalt der Spalte ein Attribute oder Element? Reihenfolge der Elemente? XML Strukturen können schnell und einfach ändern. Datenbankmodelle hingegen sind oft sehr aufwendig anzupassen Relationen, Migrationen m:n Relationen lassen sich in XML nur mit Hilfe von zusätzlichen Id s und Referenzen (Attribute) abbilden Constraints, XML Schema 12
13 XML & DB - RDBMS Fazit, Einsatz von RDBMS zur Speicherung von XML: Ein RDBMS zur Speicherung hierarchisch strukturierter XML-Dokumente einzusetzen ist ungefähr so effizient, wie ein Auto abends nach Feierabend in seine Einzelteile zu zerlegen, um es morgens für die Fahrt zur Arbeit wieder zusammenzubauen. Solange Relationale DB verbreitet sind, lohnt es sich XML nur als Datenaustauschformat zu betrachten, jedoch nicht als primärer Datenspeicher 13
14 Relationale DB Produkte: XML & DB - RDBMS Open Source mysql ( ) PostgreSQL ( Commerical Oracle Sybase MS SQL Server MS Access 14
15 Einsatz von RDBMS & XML XML & DB - RDBMS <xml> <xml> App <xml> <xml> RDBMS komplexe Strukturen einfache Strukturen 15 Wer dennoch XML nahe an der DB einsetzen will, so empfiehlt es sich dort nur einfache Strukturen zu verwenden. z.b. nur zwei Hierarchiestufen
16 XML & DB << XML & Objekt Orientierte DB >> 16
17 Was sind Objekt Orientiere DB s? XML & DB - OODB OODB dienen zur Speicherung und Verwaltung von Komplexen Objekten Komplexe Objekte können weitere Objekte enthalten Speicherung von Objekthierarchien Unterstützung von gängigen OO Eigenschaften, wie einfache Typen, Klassen, Kapselung, Vererbung, Polymorphie 17 OODB müssen eine Abfragesprache für Objekte unterstützen, Objekt Query Language (OQL) ODMG-OQL (
18 Einsatz von OODB & XML XML & DB - OODBMS marshalling API XML Objekte OODB index index Bei Objektorientierten DB werden aus dem XML zuerst Objekte generiert, diese kann dann die DB direkt speichern. 18 Den Vorgang um aus XML Objekte zu generieren wird marshalling genannt
19 Objektorientierte DB Produkte: Open Source Ozone ( XML & DB - OODB Commercial Cache FastObjects, Poet ObjectStore 19
20 XML & DB - Marshalling Prinzip Object Marshalling XML z.b. xml schema Mapping Mapping Definition Definition Java Java classes classes <xml> <xml> Marshalling Framework Objekte 20 Damit aus XML Objekte erzeugt werden können muss zuerst eine Mapping Definition erstellt werden.
21 XML Marshalling Frameworks: XML & DB - Marshalling Open Source JAXB ( java.sun.com) Castor ( Digester ( jakarta.apache.org) JiBX ( jibx.sourceforge.net) 21
22 Einsatz von OODB & XML XML & DB - OODBMS parsing API XML DOM Objekte OODB index index Theoretisch kann man aus XML durch parsen direkt ein DOM erzeugen generisches Objektmodel 22 Performance ist jedoch schlecht und in der DB möchte man direkt nach Daten suchen können
23 XML & DB - Links W3C XPath: W3C XQuery: W3C XQueryX: W3C XQL: W3C XML-QL: Object Data Management Group (ODMG): XML:DB: Xindice: exist: Castor: JiBX: 23
24 XML & DB << XML & JDBC >> 1
25 Was ist JDBC? JDBC = Java Database Connectivity JDBC ist ein API um Relationale DB unter Java zu verwenden. JDBC ist schon seit Java 1.3 integriert. Package java.sql Um JDBC zu verwenden ist der Java Treiber der jeweiligen DB nötig. Standardmässig wird nur gerade der Java ODBC Treiber mitgeliefert. 2 JDBC unterstützt mehrere Treiberarten. Durchgesetzt hat sich der Thin Standard, welcher direkt auf die DB zugreifen kann.
26 Prinzip von der Verwendung von JDBC App 1 JDBC API JDBC Driver mysql DB mysql Java Applikation Die Applikation verwendet intern die JDBC API, diese kommuniziert dann mit dem Treiber zur DB. Features der DB sind nicht unterstützt 3 Um JDBC zu verwenden muss der jeweilige Treiber für die DB im Classpath befinden
27 Die wichtigsten Klassen von java.sql : 4 DriverManager Herstellen einer Verbindung zw. Applikation und DB - Treiber Connection Repräsentiert eine DB Verbindung zur Laufzeit. Wird vom DriverManager erstellt. Statement Erstellen und Ausführen von SQL Statements. Wird über Connection erstellt. ResultSet Repräsentiert die zurückgelieferten Datensätze eines SQL Statements.
28 Verwendung von JDBC Driver Driver Manager Manager 1. driver driver.class.class Connection Connection Statement Statement sql sql Resultset Resultset Daten 5 1. Driver registrieren bzw. vom CLASSPATH laden 2. Verbindung zur DB über DriverManager herstellen, erzeugt Connection Objekt 3. Statement Objekt über Connection erzeugen 4. SQL Abfrage ausführen, Resultat ist ein ResultSet Objekt 5. Über die Datensätze im ResultSet iterieren und einzelne Zellen extrahieren einfache Java Objekte 6. Ressourcen schliessen (ResultSet, Statement, Connection)
29 6 Beispiel Nutzung JDBC mit mysql Driver Ausführen einer SQL Abfrage (1/2) import java.sql.*; public class RunJDBCExample { public static void main( String args[] ) { try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test","",""); Statement stm = con.createstatement();...
30 7 Fortsetzung Beispiel Nutzung JDBC Ausführen einer SQL Abfrage (2/2) } ResultSet rs = stm.executequery("select * FROM tpersonen"); while ( rs.next() ) { } String sname = rs.getstring("name"); String svorname = rs.getstring("vorname"); int ialter = rs.getint("alter"); rs.close(); stm.close(); con.close(); } catch( Exception ex ){ ex.printstacktrace();} } 6. 5.
31 Klasse java.sql.resultset (1/3) Mit stm.executequery() werden Tupels (Datensätze) in einer Tabelle als ResultSet -Objekt zurückgeliefert. Mit ResultSet.next() kann über die einzelnen Tupels iteriert werden. Es kann daher immer nur gerade ein Tupel abgefragt werden. 8 back() next() akt. Tupel Name Vorname Alter Note Egloff Mark Trachsler Andreas Fabbri Reto 32 5 Büchler Peter Urech Roger 28 4
32 Klasse java.sql.resultset (2/3) Die Klasse ResultSet besitzt für alle gängigen Datentypen eine getxxx Methode. Der Driver versucht dann die Daten der Datenzelle in den jeweiligen gewünschten Datentyp zu überführen. getboolean() boolean, java.lang.boolean getbyte() / getbytes() byte, java.lang.byte getdate() / gettime() java.sql.date, java.sql.time getdouble() / getfloat() double, float, java.lang.double, java.lang.float getshort() / getint() / getlong() short,int,long, java.lang.short etc. 9 getstring() java.lang.string
33 Klasse java.sql.resultset (3/3) ResultSet unterstützt auch das auslesen von Streamdaten und Objekten. Somit können auch grosse Textdaten sequentiell aus der DB ausgelesen werden. Der Driver muss dies allerdings unterstützen. getclob() / getblob() java.sql.clob, java.sql.blob getcharacterstream() java.io.reader getasciistream() java.io.inputstream getbinarystream() java.io.inputstream getobject() java.lang.object 10
34 Was ist mit XML & JDBC? JDBC unterstützt noch keine XML Anwendung. Dies muss also von Hand selber codiert werden. Um XML mittels JDBC in ein RDBMS zu speichern gibt es 2 Möglichkeiten: Speicherung von XML als Text direkt in die jeweilige Tabellenzelle XML Shredding, Mapping auf DB Struktur 11
35 << Beispiel XML Speicherung als Ganzes in RDBMS >> 12
36 Prinzip von XML Speicherung als Ganzes bei RDBMS <xml> <xml> sql sql JDBC DB mysql <xml> <xml> Java Applikation Die XML Daten wird als ganze Datei in die DB abgelegt. Hierbei wird ein SQL Anweisung erzeugt welche als Eingabe einen Stream verwendet. Dieser Stream wird dann in die DB in eine Zelle geschrieben (z.b. als CLOB) 13
37 Was ist CLOB, BLOB? CLOB = Character Large Object BLOB = Binary Large Object CLOB und BLOB sind Datentypen um grosse Menge an Daten als Einheit zu verwalten Mit LOB Datentypen kann nur über Streams kommuniziert werden. Daten werden sequentiell geschrieben und gelesen mittels Buffer 14 z.b. Clob clb = rs.getclob("textcolumn"); Reader r = clb.getcharacterstream(); while(r.read(buffer)!=-1){... };
38 mysql Datentypen für Textdaten MySQL Data Types CHAR mysql unterstützt verschiedene Datentypen die für Textdaten verwendet werden können. Wichtig ist es die maximale Grösse der Daten zu kennen VARCHAR, TINYTEXT, TINYBLOB maximale grösse bis 255 Bytes, fixe Grösse bis 255 Bytes TEXT, BLOB bis 65,535 Bytes (2 16 ) MEDIUMTEXT, MEDIUMBLOB bis 16 MB (2 24 ) LARGETEXT, LARGEBLOB bis 4 GB (2 32 ) 15
39 mysql und CLOB mysql hat anstelle von CLOB den TEXT Datentyp. Der mysql Treiber unterstütz die automatische Konvertierung in die jeweiligen Java Datentypen MySQL Data Types CHAR, VARCHAR, BLOB, TEXT, ENUM, SET automatisch konvertierbar in java.lang.string, java.io.inputstream, java.io.reader, java.sql.blob, java.sql.clob 16
40 Wann CLOB wann Stream, wann String? Oft bieten die DB Treiber an ein CLOB als String, Stream oder als LOB handzuhaben z.b. String s = rs.getstring("textcolumn"); Reader r = rs.getcharacterstream("textcolumn"); Clob clb = rs.getclob("textcolumn"); Leider ist je nach Driver Hersteller die Unterstützung des CLOB Datentyps anders. So z.b. ist die Handhabung als String oft auf bestimmte Grösse limitiert oder direkte Streams werden nicht unterstützt. mysql kennt da zum Glück keine Probleme 17
41 Beispiel Speicherung von XML als Ganzes Das folgende Beispiel zeigt die Handhabung eines CLOB einmal als Stream und einmal als LOB. Die Handhabung als Stream ist wesentlich einfacher mysql Tabelle mit LONGTEXT Spalte CREATE TABLE myxmltable ( id tinyint(3) unsigned NOT NULL auto_increment, xmlcolumn longtext, PRIMARY KEY (id) ) TYPE=MyISAM; 18
42 Beispiel Speicherung von XML als ganzes XML Datei in DB einlesen mittels Stream (1/2) import java.sql.*; import java.io.*; public class RunWriteXMLStreamStorage { public static void main( String args[] ) { try { // DB Verbindung initialisieren Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test","",""); 19...
43 Beispiel Speicherung von XML als ganzes XML Datei in DB einlesen mittels Stream (2/2) // Stream zur XML Datei erzeugen File f = new File("myDoc.xml"); FileReader fr = new FileReader(f); // Statement vorbereiten PreparedStatement ps = con.preparestatement ("INSERT INTO myxmltable (xmlcolumn) VALUES (?)"); ps.setcharacterstream(1,fr,(int)f.length()); // execute SQL statement ps.execute(); ps.close(); con.close(); fr.close(); 20 } catch( Execption ex) { ex.printstacktrace(); } }}
44 Vorgang Handhabung als CLOB bei mysql ein CLOB Objekt kann nicht direkt in Java z.b. mittels new CLOB() erstellt werden Lösung hierzu ist: 1. Über SQL Insert Statement ein leeres CLOB von der DB erzeugen zu lassen. 2. Über ein SELECT Statement das neue CLOB Objekt auslesen 3. Von CLOB Objekt den Stream erzeugen 4. In Stream die Daten schreiben 5. CLOB und ResultSet zurückschreiben 21
45 22 Beispiel Speicherung von XML als ganzes XML Datei in DB einlesen mittels CLOB (1/4) import java.sql.*; import java.io.*; public class RunWriteXMLClobStorage { public static void main( String args[] ) { try { // DB Verbindung initialisieren Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test","",""); Statement stm = con.createstatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
46 23 Beispiel Speicherung von XML als ganzes XML Datei in DB einlesen mittels CLOB (2/4) // Stream zur XML Datei erzeugen FileReader fr = new FileReader("myDoc.xml"); // leeres CLOB in DB erzeugen stm.execute("insert INTO myxmltable (xmlcolumn) VALUES ('')"); // dieses neue CLOB aus DB holen und davon Stream öffnen // letzter Eintrag holen ResultSet rs = stm.execute("select max(id) FROM myxmltable"); if (!rs.next()) throw new Exception("insert didn t work"); int maxid = rs.getint("id");
47 Beispiel Speicherung von XML als ganzes XML Datei in DB einlesen mittels CLOB (3/4) // ResultSet zu dem Eintrag holen rs = stm.executequery("select id,xmlcolumn FROM myxmltable WHERE id = " + maxid); if (!rs.next()) throw new Exception("no data!"); // CLOB aus dem ResultSet holen Clob clb = rs.getclob("xmlcolumn"); // InputStream von Clob erzeugen, Stream soll bei erster // Position beginnen, Inhalt der Zelle wird dabei // überschrieben Writer cw = clb.setcharacterstream(1); 24
48 Beispiel Speicherung von XML als ganzes XML Datei in DB einlesen mittels CLOB (4/4) // Inhalt der Datei sequentiell in CLOB schreiben int size = 0; char[] buffer = new char[4096]; while ((size = fr.read(buffer))!= -1) { cw.write(buffer,0,size); } cw.flush(); cw.close(); // CLOB in DB zurückschreiben rs.updateclob("xmlcolumn",clb); rs.updaterow(); // Ressourcen schliessen, freigeben rs.close(); stm.close(); con.close(); 25 }} } catch(exception ex) { ex.printstacktrace(); }
49 Beispiel Speicherung von XML als ganzes Resultat in mysql DB 26
50 27 Beispiel Auslesen von XML als ganzes XML Daten aus DB auslesen mittels Stream (1/2) import java.sql.*; import java.io.*; public class RunReadXMLStreamStorage { public static void main( String args[] ) { try { // DB Verbindung initialisieren Class.forName("com.mysql.jdbc.Driver");... Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test","",""); Statement stm = con.createstatement();
51 28 Beispiel Auslesen von XML als ganzes XML Daten aus DB einlesen mittels Stream (2/2) // ResultSet holen und Stream öffnen ResultSet rs = stm.executequery("select xmlcolumn FROM myxmltable WHERE id = 2"); if (!rs.next()) throw new Exception("no data!"); Reader r = rs.getcharacterstream("xmlcolumn"); // Stream mittels Buffer auslesen und ausgeben BufferedReader br = new BufferedReader(r); String line = ""; while((line = br.readline())!= null ) { System.out.println(line); } rs.close(); stm.close(); con.close(); catch(...){...}}}
52 << Beispiel XML Shredding zur Speicherung in RDBMS >> 29
53 XML Speicherung in RDBMS Beispiel <?xml version="1.0"?> <catalog country="usa"> <cd> <title>empire Burlesque</title> <artist>bob Dylan</artist> <price>10.90</price> </cd>... </catalog>??? RDBMS 30
54 Prinzip von XML Shredding bei RDBMS <xml> <xml> sql sql JDBC DB mysql Objekte Java Applikation Die XML Daten werden durch parsen (DOM oder SAX) in einzelne Objekte zerlegt. Danach wird anhand den gewonnen Daten das SQL erzeugt und mit JDBC ausgeführt. 31
55 Beispiel Datenbankmodell tcatalog id country 1 USA 2 AU. t_catalog PK id country tcd id title artist price catalog_id 1 Empire Burlesque Bob Dylan 2 My World Anastasia PK FK1 t_cd id titel author preis catalog_id 32
56 Beispiel Shredding von XML in RDBMS mysql Tabellen CREATE TABLE tcatalog ( id int(10) unsigned NOT NULL auto_increment, country varchar(100) NOT NULL default '', PRIMARY KEY (id) ) TYPE=MyISAM; 33 CREATE TABLE tcd ( id int(10) unsigned NOT NULL auto_increment, title varchar(100) NOT NULL default '', artist varchar(100) NOT NULL default '', price varchar(100) NOT NULL default '', catalog_id int(10) NOT NULL default '0', PRIMARY KEY (id) ) TYPE=MyISAM;
57 Beispiel Shredding von XML in RDBMS XML Datei in DB einlesen (1/4) import java.sql.*; import java.io.*; import javax.xml.parsers.*; import org.w3c.dom.*; import org.apache.xpath.*; public class RunWriteXMLStorageShredded { public static void main( String args[] ) { try { // DB Verbindung initialisieren Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test","",""); 34
58 Beispiel Shredding von XML in RDBMS XML Datei in DB einlesen (2/4) // DOM von XML Datei erzeugen DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newdocumentbuilder(); Document doc = builder.parse(new File("cdcatalog.xml")); // SQL Statements vorbereiten PreparedStatement pscatalog = con.preparestatement("insert INTO tcatalog (id,country) VALUES(?,?)"); PreparedStatement pscd = con.preparestatement("insert INTO tcd (title,artist,price,catalog_id) VALUES(?,?,?,?)"); 35
59 36 Beispiel Shredding von XML in RDBMS XML Datei in DB einlesen (3/4) // XML Shredding mittels XPath und in DB speichern NodeList nlcatalog = XPathAPI.selectNodeList(doc,"//catalog"); // Cataloge lesen und speichern for(int i=0; i<nlcatalog.getlength(); i++) { Element ecatalog = (Element)nlCatalog.item(i); String country = ecatalog.getattribute("country"); // Statement vorbereiten pscatalog.setint(1,i+1); pscatalog.setstring(2,country); // execute SQL statement pscatalog.execute();
60 37 Beispiel Shredding von XML in RDBMS XML Datei in DB einlesen (4/4) // Cd aus Catalog Elemente auslesen und in DB Speichern NodeList nlcd = XPathAPI.selectNodeList(eCatalog,"cd"); for(int j=0; j < nlcd.getlength(); j++) { Element ecd = (Element) nlcd.item(j); pscd.setstring(1,xpathapi.selectsinglenode(ecd, "title/text()").getnodevalue()); pscd.setstring(2,xpathapi.selectsinglenode(ecd, "artist/text()").getnodevalue()); pscd.setstring(3,xpathapi.selectsinglenode(ecd, "price/text()").getnodevalue()); pscd.setint(4,i+1); pscd.execute(); } // end for 2 } // end for 1 pscatalog.close(); pscd.close(); con.close();... }
61 Beispiel Shredding von XML in RDBMS Resultat in mysql DB 38
62 Prinzip von XML Assembling bei RDBMS sql sql DB mysql JDBC ResultSet ResultSet <xml> <xml> Objekte Java Applikation Die Daten werden mit einer SQL Abfrage aus der DB geholt. Aus dem bekommene ResultSet werden dann die Daten ausgelesen und mittels DOM oder SAX zu einem XML Dokument zusammengestellt. 39
63 Beispiel XML Assembling aus RDBMS XML Datei aus DB lesen (1/6) import java.sql.*; import java.io.*; import javax.xml.parsers.*; import org.w3c.dom.*; import org.apache.xml.serialize.*; public class RunReadXMLStorageAssembling { public static void main( String args[] ) { try { // DB Verbindung initialisieren Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test","",""); 40
64 41 Beispiel XML Assembling aus RDBMS XML Datei aus DB lesen (2/6) // neues DOM erzeugen DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newdocumentbuilder(); Document doc = builder.newdocument(); // XML root element erzeugen Element eroot = doc.createelement("catalogs"); doc.appendchild(eroot); // Statements vorbereiten PreparedStatement pscatalog = con.preparestatement("select id,country FROM tcatalog"); PreparedStatement pscd = con.preparestatement("select title,artist,price FROM tcd WHERE catalog_id =?");
65 42 Beispiel XML Assembling aus RDBMS XML Datei aus DB lesen (3/6) // Catloge holen ResultSet rscatalog = pscatalog.executequery(); while(rscatalog.next()) { // Catalog Element erzeugen String id = rscatalog.getstring("id"); String country = rscatalog.getstring("country"); Element ecatalog = doc.createelement("catalog"); ecatalog.setattribute("country",country); eroot.appendchild(ecatalog); // cd's zum Catalog holen pscd.setstring(1,id); ResultSet rscd = pscd.executequery();
66 43 Beispiel XML Assembling aus RDBMS XML Datei aus DB lesen (4/6) while(rscd.next()) { Element ecd = doc.createelement("cd") ecatalog.appendchild(ecd); Element etitle = doc.createelement("title"); Text ttitle = doc.createtextnode(rscd.getstring("title")) etitle.appendchild(ttitle); ecd.appendchild(etitle); Element eartist = doc.createelement("artist"); Text tartist = doc.createtextnode(rscd.getstring("artist")); eartist.appendchild(tartist); ecd.appendchild(eartist);
67 Beispiel XML Assembling aus RDBMS XML Datei aus DB lesen (5/6) Element eprice = doc.createelement("price"); Text tprice = doc.createtextnode(rscd.getstring("price")); eprice.appendchild(tprice); ecd.appendchild(eprice); }// end while 2 rscd.close(); }// end while 1 rscatalog.close(); pscatalog.close(); pscd.close(); con.close(); 44
68 Beispiel XML Assembling aus RDBMS XML Datei aus DB lesen (6/6) // DOM auf Standardoutput serialisieren SerializerFactory sfactory = SerializerFactory.getSerializerFactory("xml"); OutputFormat format = new OutputFormat(); format.setencoding("iso "); format.setindent(4); format.setindenting(true); Serializer serializer = sfactory.makeserializer(format); serializer.setoutputbytestream(system.out); serializer.asdomserializer().serialize(doc); } catch(exception ex){ex.printstacktrace();} 45 } }
69 Beispiel XML Assembling aus RDBMS Resultat auf Standardoutput 46
70 Fazit, XML Shredding & Assembling <xml> <xml> XSLT <xml> <xml> JDBC DB mysql Objekte komplexe Strukturen einfache Strukturen Java Applikation 47 Es ist extrem aufwendig XML Shredding und Assembling zu verwenden. Wenn dann empfiehlt es sich nur für einfache Strukturen zu betreiben. XSLT einsetzen um komplexe Strukturen zu reduzieren oder zu erzeugen
71 << Beispiel: generische XML Erzeugung aus einer SQL Abfrage >> 48
72 Was ist ein Generisches XML? Ein generisches XML besitzt einen allgemeinen Aufbau der unabhängig der eigentlichen Daten ist. z.b. Tags haben einen allgemeinen Namen und sagen nichts über den Inhalt aus. Daten können so in einem generischen Format beschrieben werden welches dann als Standard über alle Applikationen hinweg gilt. z.b. <element> <element>bob Dylan</element> <element>9.90</element> </element> 49
73 Was ist ein Generisches XML? Applikationen müssen dann anhand von zusätzlichen Metainformationen die Datensätze aus der generischen Struktur extrahieren Metainformationen können separat z.b. als Logik oder direkt im XML z.b. als Attribute vorkommen z.b. <element type="cd"> <element type="artist">bob Dylan</element> <element type="price">9.90</element> </element> 50
74 Beispiel Generisches XML für CD Catalog 51 <?xml version="1.0" encoding="iso "?> <catalog> <cd> <?xml version="1.0" encoding="iso "?> <title>empire Burlesque</title> <element type="catalog"> <artist>bob Dylan</artist> <element type="cd"> <price>10.90</price> <element>empire Burlesque</element> </cd> <element>bob Dylan</element> <cd> <element>10.90</element> <title>hide your heart</title> </element> <artist>bonnie Tyler</artist> <element type="cd"> <price>9.90</price> <element>hide your heart</element> </cd> </catalog> <element>bonnie Tyler</element> <element>9.90</element> </element> </element>
75 JDBC ResultSet MetaData Ein ResultSet symbolisiert eine Tabelle. Sie besteht aus Reihen welche in Spalten unterteilt ist. JDBC bietet eine Klasse ResultSetMetaData welche Meta-Informationen zum jeweiligen ResultSet beinhaltet. z.b. Anzahl Spalten, SpaltenNamen etc. 52 z.b. // Meta Daten des ResultSets holen ResultSet rs = statement.executequery(); ResultSetMetaData rsmd = rs.getmetadata(); // Anzahl Spalten, erster SpaltenNamen holen int count = rsmd.getcolumncount(); String columname = rsmd.getcolumnname(1);
76 Generische XML Struktur eines JDBC ResultSets z.b.: <resultset> <row> <column name="title">empire Burlesque</column> <column name="artist">bob Dylan</column> <column name="price">10.90</column> </row> <row> <column name="title">hide your heart</column> <column name="artist">bonnie Tyler</column> <column name="price">9.90</column> </row> </resultset> 53
77 54 Beispiel generisches XML Assembling aus ResultSet Utility Klasse, die aus ResultSet XML erzeugt (1/3) public class JDBCUtils { public static Document todocument(resultset rs) throws Exception { // neues DOM erzeugen DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newdocumentbuilder(); Document doc = builder.newdocument(); // Root Element erzeugen Element results = doc.createelement("resultset"); doc.appendchild(results); // Meta Daten des ResultSets holen ResultSetMetaData rsmd = rs.getmetadata();
78 Beispiel generisches XML Assembling aus ResultSet Utility Klasse, die aus ResultSet XML erzeugt (2/3) // Anzahl Spalten des ResultSets ermitteln int colcount = rsmd.getcolumncount(); // durch ResultSet iterieren und XML erzeugen while (rs.next()) { // Row Element erzeugen Element row = doc.createelement("row"); results.appendchild(row); 55 // durch Spalten iterieren und Werte auslesen for (int i=1; i<=colcount; i++) { String columnname = rsmd.getcolumnname(i); Object value = rs.getobject(i);
79 Beispiel generisches XML Assembling aus ResultSet Utility Klasse, die aus ResultSet XML erzeugt (3/3)... // Spalten Element erzeugen Element column = doc.createelement("column"); column.setattribute("name",columnname); Text t = doc.createtextnode(value.tostring()); column.appendchild(t); row.appendchild(column); } // end for } // end while return doc; 56 }
80 57 Beispiel generisches XML Assembling aus ResultSet Client public class RunGenericXMLAssembling { public static void main(string args[]) { try {... // DB Verbindung initialisieren Statement stmt = conn.createstatement(); ResultSet rs = stmt.executequery("select title,artist,price from tcd"); } } Document doc = JDBCUtils.toDocument(rs);... // weitere verarbeitung rs.close(); stmt.close(); } catch (Exception e){ e.printstacktrace();}
Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1
Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Was ist JDBC? Hauptsächlich eine Sammlung von Java Klassen und Schnittstellen für eine einfache Verbindung von Java Programmen
MehrProgrammieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008
Programmieren II Datenbanken Dr. Klaus Höppner SQL Hochschule Darmstadt SS 2008 JDBC 1 / 20 2 / 20 Relationale Datenbanken Beispiele für RDBMS Ein Datenbanksystem ist ein System zur Speicherung von (großen)
MehrJDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.
JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten
MehrJDBC. Allgemeines ODBC. java.sql. Beispiele
JDBC Java Data Base Connectivity Programmierschnittstelle für relationale Datenbanken Sammlung von Klassen, welche zum Aufbau einer Verbindung zwischen einem Java-Programm und einer Datenbank dienen Verwendet
MehrGrundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn
Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher
Mehrseit Java 1.1 Bestandteil der API: packages java.sql, javax.sql
JDBC inoffizielle Abkürzung für: Java Database Connectivity seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql ist eine Menge von Klassen und Methoden, um aus Java-Programmen relationale Datenbanken
MehrSQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar
Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-
MehrDatenbanken SQL JDBC. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 21
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 21 Datenbanken SQL JDBC 2 / 21 Relationale Datenbanken Ein Datenbanksystem ist ein System zur Speicherung von (großen) Datenmengen:
MehrOracle: Abstrakte Datentypen:
Oracle: Abstrakte Datentypen: Oracle bietet zwei mögliche Arten um abstrakte Datentypen zu implementieren: Varying Array Nested Table Varying Array (kunde) kdnr kdname gekaufteart 1 Mustermann 1 4 5 8
MehrBeispiel: DB-Mock (1/7)
Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
MehrKapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023
Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten
MehrDatenbanken & Informationssysteme Übungen Teil 1
Programmierung von Datenbankzugriffen 1. Daten lesen mit JDBC Schreiben Sie eine Java-Anwendung, die die Tabelle Books in der Datenbank azamon ausgibt. Verwenden Sie dabei die SQL-Anweisung select * from
Mehr5. Programmierschnittstellen für XML
5. Programmierschnittstellen für für Medientechnologen Dr. E. Schön Wintersemester 2015/16 Seite 146 Notwendigkeit: Programmierschnittstelle Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen
MehrClient/Server-Programmierung
Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 20. November 2015 Betriebssysteme / verteilte
Mehr5. Programmierschnittstellen für XML
5. Programmierschnittstellen für Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 135 Programmierschnittstelle Notwendigkeit: Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen
MehrSQL und MySQL. Kristian Köhntopp
SQL und MySQL Kristian Köhntopp Wieso SQL? Datenbanken seit den frühen 1950er Jahren: Hierarchische Datenbanken Netzwerkdatenbanken Relationale Datenbanken = SQL Relational? 10 9 8 7 6 f(y) := y = x r(y)
Mehr6.9 Java Server Pages
DocumentCollection dc = db.ftsearch(abfrage); Document d = dc.getfirstdocument(); while (d!= 0) { String Name = db.gettitle(); out.println(name + ""); d = dc.getnextdocument(); catch (NotesException
MehrGroße Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
MehrJava Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.
1 Copyright 1996-1997 by Axel T. Schreiner. All Rights Reserved. 7 Datenbankzugriff Prinzip Dieser Abschnitt beschäftigt sich mit dem Paket java.sql, das eine SQL-Schnittstelle für Java verkapselt. Java-Programme
MehrXINDICE. The Apache XML Project 3.12.09. Name: J acqueline Langhorst E-Mail: blackyuriko@hotmail.de
Name: J acqueline Langhorst E-Mail: blackyuriko@hotmail.de 3.12.09 HKInformationsverarbeitung Kurs: Datenbanken vs. MarkUp WS 09/10 Dozent: Prof. Dr. M. Thaller XINDICE The Apache XML Project Inhalt Native
MehrDatenbanken für Online Untersuchungen
Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren
MehrGrundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB
Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB Jörg Liedtke, Oracle Consulting Vortrag zum Praxis-Seminar B bei der KIS-Fachtagung 2007, Ludwigshafen Agenda
MehrIn diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.
In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht
MehrClient/Server-Programmierung
Client/Server-Programmierung WS 2017/2018 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 14. September 2017 Betriebssysteme / verteilte
MehrKlausur Interoperabilität
Klausur 21. Juni 2012 9.30 11.00 Uhr Workflow Systems and Technology Group Fakultät für Informatik Universität Wien Univ.-Prof. Dr. Stefanie Rinderle-Ma Allgemeine Hinweise: Die Bearbeitungszeit beträgt
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrDatenbank und Informationssysteme
Datenbank und Informationssysteme Inhaltsverzeichnis 1 Programmierung von Datenbankzugriffen 3 1.1 Architektur des SQL/CLI am Beispiel JDBC................... 4 1.2 Anfragen und Ergebnismengen in JDBC......................
MehrDatenbankentwurf & Datenbankzugriff mit JDBC. Georg Köster Sven Wagner-Boysen
Datenbankentwurf & Datenbankzugriff mit JDBC Georg Köster Sven Wagner-Boysen 6. November 2007 Gliederung 2 Datenbankentwurf für ProminentPeople.info ER-Modell Relationaler Entwurf Normalisierung Datenbankzugriff
MehrDatenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin
Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,
MehrAngewandte Softwareentwicklung Serialisierung
Angewandte Softwareentwicklung Serialisierung WS 2014/2015 Markus Berg Hochschule Wismar Fakultät für Ingenieurwissenschaften Bereich Elektrotechnik und Informatik markus.berg@hs-wismar.de http://mmberg.net
MehrAllgemeines zu Datenbanken
Allgemeines zu Datenbanken Was ist eine Datenbank? Datensatz Zusammenfassung von Datenelementen mit fester Struktur Z.B.: Kunde Alois Müller, Hegenheimerstr. 28, Basel Datenbank Sammlung von strukturierten,
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrUnsere Webapplikation erweitern
Unsere Webapplikation erweitern Um die Webapplikation zu benutzen: 1. Starten Sie den Server, indem Sie das Hauptprogramm in der Klasse ImdbServer starten. 2. Laden Sie im Browser die Seite http://localhost:8080/html/index.html.
MehrAufgaben zu XPath und XQuery
Aufgaben zu XPath und XQuery Dr. Arno Schmidhauser Letzte Revision: März 2005 Email: arno.schmidhauser@sws.bfh.ch Webseite: http://www.sws.bfh.ch/db Inhalt 1 XPath... 2 2 XQuery... 2 3 XPath/SQL Umsetzung...
MehrJava und Datenbanksysteme Datenbankanbindung mit JDBC
Java und Datenbanksysteme Datenbankanbindung mit JDBC 30.05.2001 Stefan Niederhauser sn@atelier-w.ch 1-Einführung Datenbanksysteme Java und Datenbanken: JDBC Geschichte der JDBC-Versionen Vergleich von
MehrWillkommen. Datenbanken und Anbindung
Willkommen Datenbanken und Anbindung Welche stehen zur Wahl? MySQL Sehr weit verbreitetes DBS (YT, FB, Twitter) Open-Source und Enterprise-Version Libs in C/C++ und Java verfügbar Grundsätzlich ist ein
MehrDatenmanagement in Android-Apps. 16. Mai 2013
Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer
Mehr1 Software Engineering 1
1 Software Engineering 1 XML 1.1 XML Extensible Markup Language Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten in Form von Textdaten Wird für den Datenaustausch/Speicherung benutzt
MehrDatenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])
Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs]) Hochschule für Technik, Wirtschaft und Kultur Leipzig 06.06.2008 Datenbanken II,Speicherung und Verarbeitung großer Objekte
MehrWebbasierte Informationssysteme
SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Was ist eine relationale Datenbank? Menge von Relationen (=Tabellen) und Constraints (=Integritätsbedingungen)
MehrErweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
Mehrdesk.modul : WaWi- Export
desk.modul : WaWi- Export Die Schnittstelle besteht aus einem Programm, welches die Daten aus der OfficeLine ausliest und in eine XML-Datei exportiert. Die Schnittstelle ist als ein eigenständiges Programm
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrArbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
MehrUniversität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7
Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7 Aufgabe 2 + 3: Datenbanksysteme I import java.sql.*; import oracle.jdbc.driver.*;
MehrPersistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)
Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)
MehrModul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007. Name: Note:
1 Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007 Name: Note: Nr. Aufgaben Max. Punkte Erreichte Punkte 1 Grundlagen ~ 10% Vgl. Hinweis unten 2 Integrität, Procedures, Triggers, Sichten ~ 20%
MehrEinführung in JDBC. IFIS Universität zu Lübeck 18.04.2007
Einführung in JDBC IFIS Universität zu Lübeck 18.04.2007 1 Was ist JDBC Standard für relationale DB: SQL Vor JDBC: Open Database Connectivity (ODBC), uniforme Schnittstelle für Zugriff JDBC: Programmierschnittstelle
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
MehrEinfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrMIN oder MAX Bildung per B*Tree Index Hint
E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de MIN oder MAX Bildung per B*Tree Index Hint Zugegeben, der Trick Min- oder Maximalwerte per Index Hint zu ermitteln ist nicht neu. Gewöhnlich
MehrAnalyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz
Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit
MehrDatumsangaben, enthält mindestens Jahr, Monat, Tag
Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice
MehrBeispiel 1: Filmdatenbank
Beispiel 1: Filmdatenbank Die Filmdatenbank hat drei Tabellen (ACTOR, MOVIE, PLAYED) Aufgabe 1: Erstelle mit Hilfe der SQL-DDL die drei Tabellen und die Datenbank (MOVIEDB) ACTOR (ActorID, Name, Birthday,
Mehr4. BEZIEHUNGEN ZWISCHEN TABELLEN
4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe
MehrHo Ngoc Duc IFIS - Universität zu Lübeck
Ho Ngoc Duc IFIS - Universität zu Lübeck 16.04.2003 1 Standard für relationale DB: SQL Vor JDBC: Open Database Connectivity (ODBC), uniforme Schnittstelle für Zugriff JDBC: Programmierschnittstelle (Java-API)
MehrSQL (Structured Query Language) Schemata Datentypen
2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente
MehrProjektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11
Datenbanksysteme WS 05/ 06 Gruppe 12 Martin Tintel Tatjana Triebl Seite 1 von 11 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Datenbanken... 4 2.1. Oracle... 4 2.2. MySQL... 5 2.3 MS
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
MehrBedienungsanleitung Anlassteilnehmer (Vereinslisten)
Bedienungsanleitung Anlassteilnehmer Dieses Programm ist speziell für Vereine entworfen. Es ist lizenzfrei verwendbar und gratis. Das Programm ist mit Excel 2010 erstellt worden und enthält VBA Programmierungen,
MehrMySQL Installation. AnPr
Name Klasse Datum 1 Allgemeiner Aufbau Relationale Datenbank Management Systeme (RDBMS) werden im Regelfall als Service installiert. Der Zugriff kann über mehrere Kanäle durchgeführt werden, wobei im Regelfall
MehrAdvoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank
Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen
MehrInformatik 12 Datenbanken SQL-Einführung
Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung
Mehrecaros2 - Accountmanager
ecaros2 - Accountmanager procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Aufruf des ecaros2-accountmanager...3 2 Bedienung Accountmanager...4 procar informatik AG 2 Stand: FS 09/2012 1 Aufruf
MehrProgrammieren in Java
Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang
MehrWie gestaltet man Online-Umfragen mit SurveyMonkey?
Wie gestaltet man Online-Umfragen mit SurveyMonkey? 1. Auf www.surveymonkey.com gehen. Zu allererst muss man sich registrieren. Auf der linken Seite auf Join now for free klicken. 2. Maske ausfüllen und
Mehr2004-2006, Rainer Schmidberger, ISTE. XML und Java. Rainer Schmidberger Rainer.Schmidberger@informatik.uni-stuttgart.de
XML und Java Rainer Schmidberger Rainer.Schmidberger@informatik.uni-stuttgart.de Was ist XML? Müller Hans Ulmenweg 22 70565
MehrMySQL, phpmyadmin & SQL. Kurzübersicht
MySQL, phpmyadmin & SQL Kurzübersicht Referenzen MySQL Documentation: http://dev.mysql.com/doc PHP 5 / MySQL5. Studienausgabe. Praxisbuch und Referenz (Kannengießer & Kannengießer) 2 Datenbank anlegen
MehrWPF Steuerelemente Listbox, ComboBox, ListView,
WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,
MehrKurzanleitung RACE APP
Kurzanleitung RACE APP Inhalt Leistungsumfang... 1 Erst Registrierung... 2 Benutzung als Fahrer... 2 Benutzung als Veranstalter... 3 Benutzung als Administrator... 5 Leistungsumfang Bei dem RACE APP handelt
MehrDatenbanken SQL-Grundlagen JDBC SQL-Constraints. Programmieren II. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011
Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 Datenbanken 2 SQL-Grundlagen 3 JDBC 4 SQL-Constraints Relationale Datenbanken Ein Datenbanksystem ist ein System zur Speicherung
MehrOP-LOG www.op-log.de
Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server
MehrDrei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2
Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Zur Erinnerung: Aufteilung der Schichten GUI Vorlesung 17: 3-Schichten-Architektur 2 Fachkonzept Fachkonzept - Datenhaltung Datenhaltung
MehrUNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme
UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 8. Übung zur Vorlesung Datenbanksysteme WS 08/09 Musterlösung Aufgabe 8-1: SQLJ //
MehrHochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.
Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.
MehrDownloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler
Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5
MehrKurzanleitung zur Erweiterung der htdig
Kurzanleitung zur Erweiterung der htdig Inhaltsverzeichnis 1. Einleitung...3 2. Kompilieren des Projektes...3 3. Erweiterung der htdig...4 3.1 Erweiterung der Konfigurationsdatei htdig.conf...4 3.2 XML-Export...4
MehrWas ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,
Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit, Wie kann ein PDF File angezeigt werden? kann mit Acrobat-Viewern angezeigt werden auf jeder Plattform!! (Unix,
MehrFachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6
Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in
MehrFolgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java. http://www.trivadis.com/images/javaperf_tcm16-7133.
Page 1 of 7 Betrifft: Java oder PL/SQL? Art der Info: Technische Background Info Autor: Guido Schmutz (guido.schmutz@trivadis.com) Quelle: Aus unserer Schulungs- und Beratungstätigkeit Mit Oracle8.1 besteht
MehrProjektseminar Texttechnologische Informationsmodellierung
Projektseminar Texttechnologische Informationsmodellierung XQuery Ziele der Sitzung Nach dieser Sitzung sollten Sie: XQuery als wesentlichen Standard zur Abfrage von in XML kodierten Daten kennen Mit Hilfe
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung
Grundlagen der Programmierung Prof. H. Mössenböck 14. Schrittweise Verfeinerung Entwurfsmethode für Algorithmen Wie kommt man von der Aufgabenstellung zum Programm? Beispiel geg.: Text aus Wörtern ges.:
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten
MehrPHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing.
PHP + MySQL Die MySQL-Datenbank Zusammenspiel Apache, PHP, PHPMyAdmin und MySQL PHPMyAdmin Verwaltungstool Nutzer Datei.php oder Datei.pl Apache HTTP-Server PHP Scriptsprache Perl Scriptsprache MySQL Datenbank
MehrDie Textvorlagen in Microsoft WORD und LibreOffice Writer
Die Textvorlagen in Microsoft WORD und LibreOffice Writer Liebe Teilnehmer(-innen) am Landeswettbewerb Deutsche Sprache und Literatur Baden- Württemberg, Diese Anleitung soll Ihnen helfen Ihren Wettbewerbsbeitrag
MehrUniversität Stuttgart Abteilung Anwendersoftware 01.07.2002. - Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures
SQLJ Basics Universität Stuttgart Abteilung Anwendersoftware 01.07.2002 Was ist SQLJ? SQLJ Part 0: - Steht für Embedded SQL in Java SQLJ Part 1: - Java-Methoden als SQL Stored-Procedures SQLJ Part 2: -
MehrEinführung in Javadoc
Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:
MehrPraktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt
MehrKurzanleitung zu XML2DB
Kurzanleitung zu XML2DB Inhaltsverzeichnis 1. Einleitung...3 2. Entwicklungsumgebung...3 3. Betriebsanleitung...3 3.1 Einrichten der Java Umgebung...3 3.2 Allgemeines zu java und javac...4 3.2.1 Allgemeines
MehrDelegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
MehrÜbung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse
Übung 05: Arrays Abgabetermin: xx.xx.xxxx Name: Name, Vorname Matrikelnummer: 0XXXXXX Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch
MehrDipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009
Hochschule Darmstadt DATENBANKEN Fachbereich Informatik Praktikum 3 Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 PL/SQL Programmierung Anwendung des Cursor Konzepts und Stored Procedures Und Trigger
MehrOracle SQL Tutorium - Wiederholung DB I -
Oracle SQL Tutorium - Wiederholung DB I - (Version 2.6 vom 24.2.2015) Einleitung Im Folgenden sind zur Wiederholung eine Reihe von SQL-Übungsaufgaben zu lösen. Grundlage für die Aufgaben ist die Mondial
Mehr