Javaaktuell. Java ist vielseitig. ijug. Praxis. Wissen. Networking. Das Magazin für Entwickler Aus der Community für die Community

Ähnliche Dokumente
SQL (Structured Query Language) Schemata Datentypen

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Christine Hansen, Fabrizio Fresco, Patrick Malcherek

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL.

Zeitlich abhängig von OWB?

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0

Entwicklungsumgebung für die Laborübung

Programmentwicklung ohne BlueJ

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

Probeklausur Datenbanktechnologie

Hadoop. Simon Prewo. Simon Prewo

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

Komplexe Excel-Berichte mit APEX und jxls erstellen

Advanced Queues und XML-DB Integration von Oracle in einer SOA mit Hilfe von asynchroner Kommunikation und XML-Verarbeitung

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

eclipse und Komponenten

XML-Schnittstellen zum Import und Export von Daten für eine Oracle DB Ein Erfahrungsbericht DOAG 2006

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

BPMN 2.0 gehört in den Werkzeugkasten JEDES Java Entwicklers!

Prozessautomatisierung mit BPMN 2.0 und Java.

NoSQL mit Postgres 15. Juni 2015

Objektrelationale Datenbanken

SE2 - also ich möchte das nicht.

Extracting Business Rules from PL/SQL-Code

Dipl. Inf. Eric Winter. PostgreSQLals HugeData Storage Ein Erfahrungsbericht

Kapitel 4 Dynamisches SQL

Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern

Prozedurale Datenbank- Anwendungsprogrammierung

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement

Eclipse und EclipseLink

Angewandte IT-Sicherheit

<Insert Picture Here> Security-Basics. Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update. Carsten Czarski, ORACLE Deutschland B.V. Co.

JUnit 4 Tutorial. Wolfgang Stöttinger

Objektorientierte PL/SQL- Programmierung

MySQL Queries on "Nmap Results"

Komplexe XML-Dokumente über XSU und Objekt-Typen aus der Datenbank generieren

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Oracle: Abstrakte Datentypen:

Reporting Lösungen für APEX wähle Deine Waffen weise

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #6. SQL (Teil 4)

DOAG Regionaltreffen. Regionalgruppe Nürnberg. Migration von Forms Client/Server ins Web. Andreas Ströbel OPITZ CONSULTING München

Dennis Schulte / Tobias Flohre codecentric AG. Enterprise Java Batch mit Spring

Ansible für Entwickler

+++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), um uns zu hören!!!.

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Programmieren in Java

Hadoop. Eine Open-Source-Implementierung von MapReduce und BigTable. von Philipp Kemkes

Risiko Modellierung mit PillarOne PillarOne Risk Management meets Open Source

Einstieg in die Informatik mit Java

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Eingabe und Ausgabe in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien

Graphen in Apex von Thomas Hernando.

Hibernate Das Praxisbuch für Entwickler

JUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1

Anzeige des Java Error Stack in Oracle Forms

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

sm-client Projekt Aktualisierungsinstruktionen von R2.x auf R3.0 Finale Version SSK / BSV eahv/iv

5.8 Bibliotheken für PostgreSQL

Android-Testautomatisierung mit Robotium

Lösung zu Praktikum 1 -Programmierung eines Java Card Applets-

Eclipse und Java Einheit 06: Building Eclipse Projete mit Ant

Continuous Database Integration mit Flyway

Programmieren 2 Selbststudium Semesterwoche 6

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel

Technologie Herbst Workshop

Datenbanksysteme 2 Fachbereich Angewandte Informatik WS 11/12 Dipl.-Inf. Christian Pape. 6. Übung

Software(technik)praktikum: SVN-Tutorial

PITSS.CON Oracle Forms 11g - Lower your IT Costs

Java-Schulung Grundlagen

Testen mit JUnit. Apcon Workplace Solutions Member of itelligence. Testen von Java-Code mit JUnit. ÿstruktur eines Testfalls

Android Testautomatisierung mit dem Framework Robotium

Einführung in Javadoc

Probeklausur: Programmierung WS04/05

Sehr geehrte Faktor-IPS Anwender,

Objektrelationale und erweiterbare Datenbanksysteme

ORACLE und IBM DB2 Datentypen

Java Fehlerbehandlung

Oracle Forms und APEX

DOAG München Die etwas anderen Oracle Performance-Tipps. Marco Patzwahl

JDBC. Allgemeines ODBC. java.sql. Beispiele

Hadoop I/O. Datenintegrität Kompression Serialisierung Datei-basierte Datenstrukturen Prof. Dr. Christian Herta 1/29

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

APEX URLs Suchmaschienen- und Benutzerfreundlich

cs241: Datenbanken mit Übungen HS 2011

Objektrelationale, erweiterbare Datenbanken WS 04/05

Microsoft Azure Fundamentals MOC 10979

Aspektorientierte Middleware Florian Wagner

Große Übung Praktische Informatik 1

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

+++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), umuns zu hören!!!.

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Embedded SQL in PostgreSQL

Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004

Transkript:

04-2016 Winter www. ijug.eu Praxis. Wissen. Networking. Das Magazin für Entwickler Aus der Community für die Community Java ist vielseitig Javaaktuell 4 191978 304903 04 D: 4,90 EUR A: 5,60 EUR CH: 9,80 CHF Benelux: 5,80 EUR ISSN 2191-6977 Javaaktuell JUnit 5 Das nächste große Release steht vor der Tür Ansible Konfigurationsmanagement auch für Entwickler Spring Boot Starter Komfortable Modularisierung und Konfiguration ijug Verbund

Inhalt 20 52 Anwendung im laufenden Betrieb verwalten Business Process Management auf Open-Source-Basis 3 Editorial 5 Das Java-Tagebuch Andreas Badelt 8 JUnit 5 Stefan Birkner und Marc Philipp 14 A Fool with a Tool is still a Fool Marco Schulz 20 Java Management Extensions Philipp Buchholz 26 Optional <Titel> Dr. Frank Raiser 30 Oracle BLOB-ZIP-Funktion für die Datenbank Frank Hoffmann 32 Ansible - warum Konfigurationsmanagement auch für Entwickler interessant sein kann Sandra Parsick 39 Spring Boot Starter komfortable Modularisierung und Konfiguration Michael Simons 44 Old school meets hype Java Swing und MongoDB Marc Smeets 48 REST-Architekturen erstellen und dokumentieren Martin Walter 52 BPM macht Spaß! Bernd Rücker 57 Der will doch nur spielen Jens Stündel 60 Der Einspritzmotor Sven Ruppert 66 Impressum 66 Inserentenverzeichnis 57 Ein Blick hinter die Kulissen eines Spiele-Unternehmens 4

Daten komprimieren Oracle BLOB-ZIP- Funktion für die Datenbank Frank Hoffmann, Cologne Data Mit kleinen Java-Programmen kann man sehr nützliche Funktionen einfach in die Datenbank integrieren. Im nachfolgenden Beispiel lassen sich Binary-Large-Objects-Files (BLOB) bis 4 GB Volumen aus der Datenbank komprimieren und in eine Tabelle schreiben oder in Prozeduren weiterverarbeiten. Der Java-Code ist nur ein paar Zeilen lang und baut auf bestehenden Bibliotheken auf. Wir streamen die BLOBs, schreiben das Ergebnis in einen weiteren BLOB und vergeben einen Namen. Der Code ist getestet worden auf den ORACLE-Versionen 9i, 10g, 11g und 12c. Die Java-Klasse (siehe Listing 1) kann über PL/SQL angesprochen werden (siehe Listing 2). Für ein Praxisbeispiel wird zuerst mit create table meintest (meinblob blob); eine Tabelle angelegt. Dann generiert man mit ein paar Zeilen CSV-Format einen gezippten BLOB (siehe Listing 3). Ein Blick in die Tabelle liefert das binäre Ergebnis (siehe Abbildung 1). Wir speichern es unter beispiel.zip ab (siehe Abbildung 2) und sehen dann unser komprimiertes CSV- File (siehe Abbildung 3). Ein Code-Beispiel steht unter www.cologne-data.com. CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "OracleBlob" AS // // ORACLEBlob: Zippen einer BLOBDATEI // import oracle.sql.blob; import java.util.zip.*; import java.io.inputstream; public class OracleBlob public static void compressblob (BLOB unzippedblob, BLOB zippedblob, java.lang.string zip_entry_name) throws Exception InputStream in=unzippedblob.getbinarystream(); ZipOutputStream z= new ZipOutputStream (zippedblob.getbinaryoutputstream()); z.putnextentry(new ZipEntry(zip_entry_name)); byte[] buffer=new byte [zippedblob.getbuffersize()]; int cnt; while ((cnt=in.read(buffer)) > 0) z.write(buffer,0,cnt); in.close(); z.close(); Listing 1 30

www.ijug.eu create or replace procedure P_GET_ZIPPED_FILE ( p_unzipped_blob BLOB, p_zipped_blob BLOB, p_zipped_entry_name VARCHAR2) as language java name 'OracleBlob.compressBlob(oracle.sql.BLOB, oracle.sql.blob, java.lang.string)'; Listing 2 begin declare l_blob_zipped BLOB; l_blob_unzipped BLOB; begin -- Erstellung von Beispielblobs DBMS_LOB.createtemporary (l_blob_unzipped, TRUE); DBMS_LOB.append (l_blob_unzipped, UTL_RAW.cast_to_raw ('a; b; c;' chr(10))); DBMS_LOB.append (l_blob_unzipped, UTL_RAW.cast_to_raw ('e; f; g;' chr(10))); DBMS_LOB.createtemporary (l_blob_zipped, TRUE); -- JAVA Procedure wird aufgerufen mit den Blobs sowie dem gewünschten Name der ZIP Datei p_get_zipped_file (l_blob_unzipped, l_blob_zipped, 'Beispiel.CSV'); insert into meintest values (l_blob_zipped); commit; end; end; Listing 3 Abbildung 1: Das binäre Ergebnis Abbildung 3: Das komprimierte CSV-File Frank Hoffmann frank.hoffmann@cologne-data.de Abbildung 2: Unter beispiel.zip abspeichern Frank Christian Hoffmann ist Dipl.-Ing. Informationsverarbeitung an der GH Paderborn. Seine Schwerpunktthemen sind Oracle Forms Entwicklung (4GL), Migration (beispielsweise zu Forms12c), Modernisierung und Java-Integration. Er war von 1994 bis 1999 Berater beziehungsweise Seniorberater bei Opitz Consulting und Oracle Deutschland und ist seit dem Jahr 1999 Geschäftsführer der Cologne Data GmbH. Java aktuell 4-2016 31