Visualisatie van een databank met behulp van JPA

Maat: px
Weergave met pagina beginnen:

Download "Visualisatie van een databank met behulp van JPA"

Transcriptie

1 Academiejaar Departement Toegepaste Ingenieurswetenschappen Schoonmeersstraat Gent Visualisatie van een databank met behulp van JPA Masterproef voorgedragen tot het behalen van het diploma van INDUSTRIEEL INGENIEUR INFORMATICA Tim Mallezie Promotoren: Veerle Ongenae Evert De Rammelaere

2 Inhoudsopgave Lijst van afkortingen 2 I Probleemstelling en doelstellingen 5 1 Inleiding Persistentie Object relational paradigm mismatch ORM, JPA en Hibernate Doelstellingen Visualisatie van een relationeel databankmodel Visualisatie van een objectmodel II Gebruikte technologieën 11 3 Maven Een Maven project aanmaken Het gebruik van dependencies Site generatie met Maven JPA Inleiding Mapping door annotaties Configuratie van JPA Opslaan en opvragen van objecten Spring Dependency injection JPA en Spring Bibliografie 25 1

3 Lijst van afkortingen API Application Programming Interface APT Almost Plain Text CRUD Create Read Update Delete EJB Enterprise Java Beans HTML Hypertext Markup Language III Industrieel Ingenieur Informatica JDO Java Data Objects JDK Java Development Kit JPA Java Persistence API JPAQL JPA Query Language JSR Java Specification Request ORM Object/Relational Mapping POM Project Object Model SQL Standard Query Language 2

4 Lijst van figuren 2.1 Visualisatie van een relationeel databankmodel door DbVisualizer Directory structuur na creatie met behulp van archetype Klassediagram van een objectmodel dat gemapt wordt naar een databankmodel Een één-op-één relatie in een databankmodel Een één-op-veel relatie in het databankmodel Een veel-op-veel relatie

5 Lijst van codevoorbeelden 3.1 Maven s Project Object Model Configuratiebestand van de website Mapping van een klasse Annotaties op attributen Annotaties op een één-op-één relatie Annotaties op een één-op-veel relatie Annotaties op een één-op-veel relatie Mapping van een klasse Annotaties op een superklasse Voorbeeld van persistence.xml configuratiebestand

6 Deel I Probleemstelling en doelstellingen 5

7 Hoofdstuk 1 Inleiding 1.1 Persistentie Een applicatie die data gebruikt en bewerkt, moet in staat zijn deze op te slaan, als het programma wordt afgesloten. Hierbij wordt de data meestal bewaard in een relationele databank. De databank is verantwoordelijk voor het behoud van de data, onafhankelijk van de applicatie. De applicatie moet er voor zorgen, dat wijzigingen aan de data, doorgegeven worden aan de databank. De data gebruikt in de applicatie moet persistent zijn met die in de databank. Persistentie zorgt ervoor dat een object onafhankelijk, van zijn gebruikte context, bewaard kan worden. Het omgekeerde begrip wordt transistentie 1 genoemd, dit zijn objecten met een levensduur die beperkt blijft tot het gebruik in de applicatie. 1.2 Object relational paradigm mismatch Een vaak voorkomend probleem bij het gebruik van een databank, ontstaat bij het aanmaken en wijzigen van de gebruikte objecten in de applicatie, en de overeenkomstige tabellen in de databank. Een (relationele) databank maakt gebruik van een relationeel datamodel, met tabellen, één-op-één relaties, één-op-veel en veel-op-veel relaties tussen deze tabellen. Samen met het gebruik van primaire en secundaire sleutels modelleert een relationeel databankmodel op deze manier een werkelijke situatie. In een applicatie echter maakt men gebruik van een objectmodel om de werkelijkheid te modelleren. Hierbij gebruikt men objecten en klassen, en verschillende mogelijke relaties tussen deze. Daarbij heeft men de keuze tussen het gebruik van attributen die een heeft-een relatie kunnen voorstellen, of kan men overerving en interfaces gebruiken om is-een relaties te modelleren. 1 Een vernederlandsing van het Engelse begrip transient. 6

8 Hoofdstuk 1. Inleiding 7 Deze tegenstrijdigheid wordt de object-relational paradigm mismatch genoemd. Een wijd aanvaarde oplossing voor persistentie en de object-relational paradigm mismatch is een oplossing genaamd Object/Relational Mapping (ORM). ORM is een geautomatiseerd en transparante techniek die de relatie tussen objecten en tabellen in een relationele databank vastlegt. Metadata 2 wordt gebruikt om deze mapping te beschrijven. 1.3 ORM, JPA en Hibernate ORM Een ORM oplossing bestaat uit vier delen. Een API voor Create Read Update Delete (CRUD) operaties. Een taal of API om queries te definiëren. Een techniek om de metadata vast te leggen, die nodig is voor de mapping. Een techniek die transactionele objecten behandelt Java Persistence API (JPA) In 2003 werd door Sun 3 een Java Specification Request (JSR) opgestart met de naam Enterprise Java Beans (EJB) 3.0. Deze specificatie bestaat uit twee delen. Het eerste deel definieert een nieuw model voor het gebruik van Java Beans 4. Het tweede deel behandelt persistentie. Dit deel wordt JPA genoemd, waarschijnlijk omdat de interfaces zich in de package javax.persistence.* bevinden. De JPA is een specificatie die een verzameling interfaces definieert. Deze interfaces bepalen hoe persistentie in Java moet geïmplementeerd worden Hibernate Hibernate is een implementatie 5 van de JPA standaard. De JPA specificatie definieert de ORM metadata syntax door gebruik te maken van JDK 5.0 annotaties. Deze annotaties bepalen de relatie tussen de gegevens in een object, en de bijhorende databanktabellen waar deze gegevens moeten opslaan. De JPA specificatie voorziet niet alleen in annotaties om de 2 Aanvullende data die aan een klasse wordt meegegeven. 3 Sun Microsystems Inc. werd opgericht in 1982 en creëerde het Java platform rond Herbruikbare Java componenten. 5 Hibernate biedt ook extra mogelijkheden aan buiten de JPA standaard, maar in deze masterproef wordt enkel de JPA standaard en Hibernate zijn implementatie behandelt.

9 Hoofdstuk 1. Inleiding 8 gegevens op te slaan, maar ook in verschillende annotaties om de relaties tussen objecten en zaken zoals overerving en polymorfisme te modelleren naar een relationeel databankmodel. De JPA specificatie bepaalt ook interfaces, regels voor de levensduur van persistente objecten, en query toepassingen. De Hibernate implementatie voor dit deel van de JPA specificatie is de Hibernate EntityManager. Deze zet verbindingen op met de databank, en laat toe om opzoekingen en wijzigingen uit te voeren in de databank Persistente objecten aanmaken, opzoeken en wijzigen De JPA specificatie laat ons toe om via annotaties, de juiste relaties te bepalen tussen de gegevens in de objecten en de tabellen van de relationele databank. De Hibernate EntityManager bevat verschillende functies om deze objecten op te zoeken, en zorgt ervoor dat wijzigingen aan deze objecten automatisch aan de databank worden doorgegeven. Via de Hibernate EntityManager voeren we bewerkingen uit op objecten. Er wordt op zoek gegaan naar objecten, die onderliggend als data in databank staan. Er worden wijzigingen uitgevoerd op attributen van objecten, en deze worden automatisch doorgegeven aan de juiste tabellen in de databank. De Hibernate EntityManager laat toe om objecten op te vragen en te wijzigen zonder kennis van het onderliggende relationele databankmodel JPAQL JPA Query Language (JPAQL) is een taal die toelaat om specifieke objecten op te zoeken. De JPA specificatie met zijn Hibernate implementatie zet deze opvragingen om in Standard Query Language (SQL) die uitgevoerd wordt op de onderliggende databank. SQL is een query taal die toelaat om gegevens uit verschillende tabellen op te vragen in de databank, op deze manier kan JPAQL beschouwd worden als een query taal om verschillende objecten uit het objectmodel op te vragen.

10 Hoofdstuk 2 Doelstellingen 2.1 Visualisatie van een relationeel databankmodel Toepassingen zoals DbVisualizer laten toe om een visualisatie te geven van een databankmodel, en de data opgeslagen in een databank. Deze toepassingen geven een weergave van de verschillende tabellen in de databank, en de onderlinge relaties tussen de verschillende tabellen. Ook de data die in de verschillende tabellen opgeslagen wordt kan op een eenvoudige manier visueel worden weergegeven. Figuur 2.1: Visualisatie van een relationeel databankmodel door DbVisualizer Deze toepassingen kunnen eenvoudig gebruikt worden om SQL commando s uit te testen. Ook bij het aanmaken van een databankmodel kan een visualisatie een grote hulp zijn. Tijdens het aanmaken van het model kan stapsgewijs nagekeken worden of de relaties tussen de tabellen correct zijn. 9

11 Hoofdstuk 2. Doelstellingen Visualisatie van een objectmodel Het doel van deze masterproef is een applicatie te ontwikkelen die ons toelaat een objectmodel te visualiseren. Deze applicatie geeft informatie en relaties tussen verschillende klassen weer. Ook is er de mogelijkheid om door middel van JPAQL commando s objecten op te vragen, en deze visueel terug te. De ontwikkelde applicatie vertrekt vanuit een aangeleverd objectmodel, en geeft daaruit een visueel beeld van het objectmodel. Hierbij krijgt de gebruiker een beeld van de klasseinformatie, de attributen en methoden van de aangeleverde klassen. Ook de informatie van de gebruikte JPA annotaties wordt weergegeven. Deze applicatie levert de mogelijkheid om via een JPAQL commander, queries uit te voeren en de opgevraagde objecten weer te geven. Dit maakt de applicatie geschikt om JPAQL commando s uit te testen, alvorens ze in een applicatie te gebruiken. Het doel van de ontwikkelde applicatie is een hulp te zijn voor Java ontwikkelaars die met een aangeleverd objectmodel een applicatie dienen te ontwerpen. Het aangeleverde objectmodel kan bekeken worden en doorzocht worden op het niveau van de objecten. De ontwikkelaar dient op deze manier niet op de hoogte te zijn van de manier waarop de persistente objecten gelinkt zijn naar de databank. De applicatie ontwikkeld in deze masterproef kan ook gebruikt worden om te controleren of een objectmodel op een juiste manier aangevuld is met JPA annotaties. Net zoals men bij programma s als DbVisualizer kan kijken of de relaties tussen de verschillende tabellen correct zijn, kan men bij deze applicatie nakijken of relaties tussen objecten juist geïmplementeerd zijn, en of de onderliggende databank relaties gevolgd worden, bij het opvragen van objecten.

12 Deel II Gebruikte technologieën 11

13 Hoofdstuk 3 Maven Maven is een projectmanagement framework, dat ondersteuning biedt bij het ontwikkelen van grote projecten. Het is een ontwikkel-tool die hulpmiddelen biedt voor het beheer van een project. In deze masterproef worden vooral de mogelijkheden om het compileren, deployen en testen van de applicatie te vereenvoudigen gebruikt. Ook de mogelijkheden voor een eenvoudiger beheer van gebruikte externe libraries worden veelvuldig gebruikt, en zullen dan ook besproken worden. Verder biedt Maven ook een structuur aan onze applicatie die ons op een eenvoudige manier toelaat testcode, applicatiecode en gegenereerde class-files te scheiden van elkaar. Als laatste wordt gebruik gemaakt van de mogelijkheid om Maven een site 1 te laten genereren over dit project. Deze site werd de uiteindelijke website voor deze masterproef. 3.1 Een Maven project aanmaken In deze paragraaf wordt kort overlopen hoe een eerste Maven project aangemaakt wordt, van hieruit wordt verder besproken hoe bepaalde Maven functionaliteiten gebruikt werden in deze masterproef. Om een Maven project aan te maken, wordt het ingebouwde archetype mechanisme gebruikt. An archetype is defined as an original pattern or model from which all other things of the same kind are made. (Mav, 2009) Volgend commando levert ons een nieuw project op: mvn archetype:create -DgroupId="be.hogent.iii" -DartifactId="projectnaam" Hier wordt een nieuw project volgens de standaard gebruikte mapstructuur gecreëerd. Deze structuur wordt weergegeven in figuur

14 Hoofdstuk 3. Maven 13 Figuur 3.1: Directory structuur na creatie met behulp van archetype De directorystructuur toont de map src die de bronbestanden van ons project bevat. Deze bevat een map main\java voor de broncode van de applicatie, onderverdeeld in verschillende packages. Verder is ook de map main\resources voor configuratiebestanden aanwezig. De map test bevat de bronbestanden voor de gebruikte JUnit testklassen. In de mapsite komen de verschillende bron- en configuratiebestanden voor de website te staan. In de target map komen de gegenereerde bestanden terecht, hier zijn verschillende mappen voor de sitebestanden, de gegenereerde testresultaten en de gecompileerde class bestanden. Het hart van de configuratie van het gecreëerde Maven project bevind zich in het pom.xml bestand dat aangemaakt wordt. Dit bevat alle configuratiegegevens voor een project. <p r o j e c t> <modelversion> </ modelversion> <groupid>be. hogent. i i i</ groupid> <a r t i f a c t I d>projectnaam</ a r t i f a c t I d> <packaging>j a r</ packaging> <version>1.0 SNAPSHOT</ version> <name>maven Quick S t a r t Archetype</name> <u r l>h t t p : //maven. apache. org</ u r l> <dependencies> <dependency> <groupid>j u n i t</ groupid> <a r t i f a c t I d>j u n i t</ a r t i f a c t I d> <version> </ version> <scope>t e s t</ scope>

15 Hoofdstuk 3. Maven 14 </ dependency> </ dependencies> </ p r o j e c t> Code 3.1: Maven s Project Object Model. Dit Project Object Model (POM) bevat alle belangrijke informatie van het project. De meeste elementen hierin zijn zeer eenvoudig en geven beschrijvende informatie over het project. In de volgende paragraaf wordt dieper ingegaan op het dependencies element. 3.2 Het gebruik van dependencies Bij de installatie en het eerste gebruik van Maven, zal Maven een lokale repository opstellen, en daar verschillende libraries in opslaan, afhankelijk van de dependencies in het POM. In dit voorbeeld zal Maven in de standaard centrale Maven repository op zoek gaan naar de nodige bestanden om de JUnit afhankelijkheid te gebruiken. Deze zal hij dan downloaden naar de lokale repository alwaar hij de nodige jarbestanden zal bewaren. Op die manier gebruikt Maven voor elk project dezelfde lokale repository en zal niet voor elk afzonderlijk project de nodige externe bestanden opnieuw worden opgehaald. Het voordeel bij deze aanpak is dat de gebruikte dependencies enkel moeten weergegeven worden in pom.xml, zoals in codevoorbeeld 3.1. Maven zorgt ervoor dat de niet aanwezige dependencies gedownload worden naar de lokale repository. 3.3 Site generatie met Maven Maven beschikt ook over een eenvoudig systeem om een website over het project aan te maken. dit wordt veel gebruikt bij open source toepassingen om een projectwebsite 2 aan te maken. Om een site aan te maken gebruikt Maven verschillende bronnen om de informatie op te halen. Enerzijds wordt gebruik gemaakt van het pom.xml bestand om projectinformatie op te halen. Maven heeft verschillende tags die informatie meegeven aan het project. In het pom.xml bestand kan een naam, beschrijving, een lijst van programmeurs, de website,... meegegeven worden. Ook kunnen verschillende plugins gedefinieerd worden die gebruikt kunnen worden om testrapporten en Java documentatie te genereren. Het belangrijkste bestand bevindt zich in de map src/site en heeft als naam site.xml. Hierin wordt de structuur van onze site bepaald, indien men niet voldoende heeft aan de standaard website. De configuratie van dit bestand bepaalt de structuur van de website. 2 Bvb.:

16 Hoofdstuk 3. Maven 15 <p r o j e c t name= Caribou V i s u a l i s a t i o n > <publishdate p o s i t i o n= r i g h t /> <body> <menu name= C a r i b o u V i s u a l i s a t i o n > <item name= Home h r e f= / index. html /> <item name= What i s C a r i b o u V i s u a l i s a t i o n h r e f= / p r o j e c t summary. html /> <item name= Wie? h r e f= /team l i s t. html /> <item name= Downloads h r e f= /download. html /> <item name= Logboek h r e f= / logboek. html /> <item name= L i c e n s e h r e f= / l i c e n s e. html /> </menu> </ body> </ p r o j e c t> Code 3.2: Configuratiebestand van de website In dit bestand worden de gebruikt pagina s gelinkt, aan een inhoudsopgave die we in onze site gebruiken. Hierbij worden enerzijds automatisch gecreëerde pagina s aangemaakt, alsook zelf gemaakte pagina s. Eigen pagina s kunnen op verschillende manieren aangemaakt worden. Externe pagina s of bestanden kunnen rechtstreeks in de website gelinkt worden. Deze externe resources dienen daarvoor in de map /src/site/resources geplaatst te worden. Een tweede mogelijkheid is om zelf pagina s aan te maken in Maven s eigen Almost Plain Text (APT) formaat. Dit is een wiki-achtige markup-taal die door Maven kan omgezet worden naar Hypertext Markup Language (HTML)-pagina s. Deze pagina s worden door Maven in de website ingevoegd.

17 Hoofdstuk 4 JPA 4.1 Inleiding In paragraaf 1.3 werd aangehaald dat de Java Persistence API (JPA) specificatie met Hibernate als implementatie een Object/Relational Mapping (ORM) oplossing biedt om met persistente objecten om te gaan. Het gebruik van JPA in een applicatie bestaat uit drie stappen: Het objectmodel aanmaken en de mapping bepalen door de nodige annotaties aan te brengen. Een configuratiebestand maken, met instellingen over de gebruikte databank en eigenschappen om met deze verbindingen op te zetten. Het gebruik van de Hibernate EntityManager om objecten aan te maken, te wijzigen en op te zoeken. 4.2 Mapping door annotaties Met JPA-annotaties wordt de relatie tussen het objectmodel en de relationele databank aangeduid. In deze paragraaf wordt dieper ingegaan op de verschillende annotaties. Als een objectmodel gemapt dient te worden naar een databankmodel kunnen vier onderdelen onderscheiden worden. 1. Een klasse mappen naar één of meerdere tabellen. 2. De attributen naar de verschillende kolommen linken. 3. Relaties tussen objecten omzetten naar relaties gebruikt in een databankmodel. 16

18 Hoofdstuk 4. JPA Overerving en polymorfisme mappen naar een databankmodel. Hierbij wordt vertrokken van een top-down benadering. Er wordt vertrokken vanuit een bestaand objectmodel dat gelinkt dient te worden aan een databank, waarbij er weinig of geen vereisten zijn voor de onderliggende databank. Deze methode laat de vrijheid om de verschillende annotaties te verklaren. Uiteraard kunnen ook andere benaderingen gebruikt worden 1. Een bottom-up benadering vertrekt vanuit een opgelegde databankmodel waarna men dan de annotaties invult, zodat de objecten dan volgens dit schema gemapt worden naar de databank. In dit hoofdstuk wordt dieper ingegaan op het gebruik van JPA aan de hand van voorbeeld 4.1. Dit objectmodel wordt gemapt naar een databankmodel. Figuur 4.1: Klassediagram van een objectmodel dat gemapt wordt naar een databankmodel Annotaties op klassen Klassen waarvan de objecten gemapt moeten worden naar de databank, moeten aangeduid worden als een entiteit. JPA maakt voor deze aanduiding gebruik van annotaties, een toevoeging in Java 5.0. Om een klasse aan te duiden als entiteit dient men deze aan te duiden met annotatie. Verder kan onder meer de naam van de databanktabel gespecificeerd worden met @Table ( name = PERSOON ) public class Persoon { } Code 4.1: Mapping van een klasse 1 De databank kan dan ook automatisch gegenereerd worden met de hbm2ddl tool.

19 Hoofdstuk 4. JPA 18 Een klasse kan ook beschouwd worden als onderdeel van een andere klasse. Daarvoor kan annotatie gebruikt worden Annotaties op velden en/of attributen Om alle informatie van een klasse te bewaren, dienen ook de attributen van een klasse in de databank opgeslagen te worden. Eenvoudige attributen van standaard Java Development Kit (JDK) types, worden automatisch omgezet naar het overeenkomstige databanktype. Hiervoor is het voldoende om de attributen aan te duiden met annotatie. Binnen een databank dient elke tabel voorzien te zijn van een primaire sleutel. Daarom dient minstens één attribuut aangeduid te worden als primaire sleutel van de tabel. Deze kan automatisch worden ingevuld met de juiste annotaties, ook kunnen andere attributen aangeduid worden als ( s t r a t e g y = name = PERSOON ID ) private long i d name = PERSOON NAAM ) private S t r i n g naam ; Code 4.2: Annotaties op attributen Deze annotaties kunnen rechtstreeks op de attributen aangebracht maken, of op de methoden die toegang geven tot de waarden, de zogenaamde getter-methoden. Afhankelijk waar de annotaties zich bevinden, vragen de onderliggende JPA-klassen hun waarden rechtstreeks aan de attributen, of vragen ze de waarde op via de geannoteerde methoden Relaties tussen klassen De mapping van een klasse en zijn attributen naar de juiste kolommen in de databank is voor de meeste objectmodellen niet voldoende. Binnen verschillende klassen bestaan afhankelijkheden naar andere klassen. Een klasse kan een heeft-een relatie hebben met een andere klasse, of een lijst van objecten van een andere klassen bevatten. Deze relaties moeten we omzetten, naar de bestaande relaties in een databank. Een databank kan één-op-één, veel-op-één, of veel-op-veel relaties bevatten. Verder moet er gespecificeerd worden of deze relaties, uni- of bidirectioneel dienen te zijn.

20 Hoofdstuk 4. JPA 19 Een één-op-één relatie In het voorgaande voorbeeld is te zien dat de klasse Persoon een relatie met zichzelf heeft. Dit dient omgezet te worden naar een één-op-één relatie in de databank. In een databankmodel wordt dit geïmplementeerd door een kolom toe te voegen die een verwijzing bevat naar de primaire sleutel van de Persoon die de echtgenoot voorstelt. Dit is ook duidelijk te zien in de manier waarop de annotaties dienen ingevuld ( name = PERSOON ) public class Persoon cascade = ( name = ECHTGENOOT ID ) private Persoon echtgenoot ; } Code 4.3: Annotaties op een één-op-één relatie Er wordt annotatie gebruikt om de relatie aan te duiden. annotatie duidt de naam van de kolom aan die daarvoor gebruikt wordt. Dit geeft een databankmodel zoals te zien in figuur 4.2. Figuur 4.2: Een één-op-één relatie in een databankmodel Een één-op-veel relatie Een object van de klasse Persoon kan een inwoner zijn van een object van de klasse Huis. Een Huis kan echter meerdere inwoners hebben. Dit is te zien in het klassediagram op figuur 4.1, waar een Huis een collectie van inwoners bevat. Om dit in een databankmodel weer te geven, wordt aan een Persoon-tabel een kolom toegevoegd die de primaire sleutel van een ( name = PERSOON ) public class Persoon {

21 Hoofdstuk 4. JPA 20 f e t c h = ( name= PERSOON HUIS ID, referencedcolumnname= HUIS ID ) private Huis h u i s ; Code 4.4: Annotaties op een één-op-veel relatie Er wordt annotatie gebruikt om de relatie aan te duiden. annotatie duidt de naam van de kolom aan die daarvoor gebruikt wordt. Dit geeft een databankmodel zoals te zien in figuur 4.3. We duiden het type aan van de relatie die we willen definiëren, in dit geval dus ToOne relatie. En aan annotatie worden de kolommen meegegeven die de data van de relatie moet bevatten. Aan de andere kant van de relatie dient enkel aangeduid te worden dat de relatie bestaat en door welk attribuut ze ( name = HUIS ) public class Huis = h u i s ) private C o l l e c t i o n <Persoon> bewoners = new ArrayList<Persoon >();} Code 4.5: Annotaties op een één-op-veel relatie Op deze manier wordt een databankmodel bekomen zoals in figuur 4.3. Figuur 4.3: Een één-op-veel relatie in het databankmodel Een veel-op-veel relatie Ook veel-op-veel relaties kunnen aangeduid worden met behulp van JPA. In een databank kunnen we deze relatie enkel definiëren door een tussentabel in te voegen. Op deze manier moet deze relatie dan ook aangeduid worden in het objectmodel. In het gebruikte objectmodel is te zien dat een object van de klasse Huisdier verschillende Persoon objecten als eigenaar kan hebben, en dat een object van de klasse Persoon verschillende objecten van de klasse Huisdier kan bevatten. Deze relatie wordt geannoteerd volgens codevoorbeeld 4.6.

22 Hoofdstuk 4. JPA 21 De wordt gebruikt om de relatie aan te duiden. De zorgt voor een nieuwe tabel in de databank. Deze bestaat enkel uit verwijzingen naar de primaire sleutels van de objecten die bij ( name = HUISDIER ID ( name = HUISDIER ) public class H u i s d i e r extends Dier f e t c h = ( name = HUISDIER EIGENAAR, joincolumns = ( name = HUISDIER ID ) }, inversejoincolumns = (name = PERSOON ID ) } ) private C o l l e c t i o n <Persoon> e i g e n a a r s = new ArrayList<Persoon >(); } Code 4.6: Mapping van een klasse In het databankmodel van figuur 4.4 is duidelijk te zien dat er een extra tabel in de databank wordt ingevoegd. In de andere klasse die bij de relatie betrokken is, dient enkel aangeduid te worden door welk attribuut de relatie gespecificeerd wordt, zoals in codevoorbeeld 4.5. Figuur 4.4: Een veel-op-veel relatie Overerving en polymorfisme Ten slotte dient nog de overerving tussen de klasse Dier en Huisdier geïmplementeerd te worden. Hiervoor wordt annotatie gebruikt in de superklasse. Hibernate heeft verschillende technieken ingebouwd om ervoor te zorgen dat de juiste objecten uit de databank opgehaald worden. Het strategy attribuut van annotatie bepaalt welke strategie gevolgd wordt, om het databankmodel te bepalen. Deze strategie bepaalt welke SQL statements uitgevoerd worden. Deze keuze heeft meestal dan ook enkel

23 Hoofdstuk 4. JPA 22 belang indien men aan een vast databankmodel dient te voldoen, of kan een invloed hebben op de performantie van de uitgevoerde queries. In deze masterproef wordt hier echter niet dieper ( s t r a t e g y = InheritanceType. ( name= DIER ) public class Dier {... } Code 4.7: Annotaties op een superklasse 4.3 Configuratie van JPA De JPA functionaliteit dient ook nog informatie te krijgen over welke klassen geannoteerd zijn. Alsook dienen connectiegegevens aanwezig te zijn, om de gebruikte databank te kunnen lokaliseren, en een connectie op te zetten. Deze informatie wordt opgeslagen in een XMLbestand. Default wordt dit bestand opgeslagen in de META-INF map. <p e r s i s t e n c e xmlns= h t t p : // java. sun. com/xml/ ns / p e r s i s t e n c e x m l n s : x s i= h t t p : //www. w3. org /2001/XMLSchema i n s t a n c e x s i : s c h e m a L o c a t i o n= h t t p : // java. sun. com/xml/ ns / p e r s i s t e n c e h t t p : // java. sun. com/xml/ ns / p e r s i s t e n c e / p e r s i s t e n c e 1 0. xsd version= 1. 0 > <! p e r s i s t e n c e. xml > <p e r s i s t e n c e u n i t name= h e l l o w o r l d > <p r o p e r t i e s> <! Scan f o r annotated c l a s s e s and Hibernate mapping XML f i l e s > <property name= h i b e r n a t e. a r c h i v e. a u t o d e t e c t i o n value= c l a s s /> <property name= h i b e r n a t e. connection. d r i v e r c l a s s value= com. mysql. jdbc. Driver /> <property name= h i b e r n a t e. connection. password value= m a l l e z i e /> <property name= h i b e r n a t e. connection. u r l value= j d b c : m y s q l : // l o c a l h o s t / t e s t /> <property name= h i b e r n a t e. connection. username value= r o o t /> <property name= h i b e r n a t e. d i a l e c t value= org. h i b e r n a t e. d i a l e c t. MySQLInnoDBDialect /> <property name= h i b e r n a t e. hbm2ddl. auto value= c r e a t e /> </ p r o p e r t i e s>

24 Hoofdstuk 4. JPA 23 </ p e r s i s t e n c e u n i t> </ p e r s i s t e n c e> Code 4.8: Voorbeeld van persistence.xml configuratiebestand 4.4 Opslaan en opvragen van objecten

25 Hoofdstuk 5 Spring Spring is een open-source framework dat tot doel heeft om de eenvoudige J2EE applicaties te ontwikkelen. Elke java-applicatie kan echter voordelen hebben bij Spring. Spring heeft verschillende hulpmiddelen om unit testen te vereenvoudigen. Spring zorgt voor een losse koppeling tussen klassen. Spring zorgt voor minder, en dus makkelijkere code, en biedt hulpklassen aan voor een verscheidenheid aan veelgebruikte technologieën. Spring is a lightweight dependency injection and aspect-oriented container and framework (Walls & Breidenbach, 2008) In deze masterproef gebruiken we vooral de losse koppeling die door Spring verkregen wordt, door dependecy injection te gebruiken. Alsook de hulpklassen die Spring bevat om met minder code JPA opdrachten uit te voeren. 5.1 Dependency injection 5.2 JPA en Spring 24

26 Bibliografie (2009). Introduction to archetypes. introduction-to-archetypes.html. Geraadpleegd: maart Bauer, C. & King, G. (2007). Java Persistance with Hibernate. Manning, second edition. Biswas, R. & Ort, E. (2006). The java persistence api - a simpler programming model for entity persistence. Geraadpleegd: januari Johnson, R., Hoeller, J., Arendsen, A., Risberg, T., & Sampaleanu, C. (2005). Professional Java Development with the Spring Framework. Wiley Publishing, first edition. Massol, V. & Husted, T. (2004). JUnit in action. Manning, first edition. Massol, V., van Zyl, J., Porter, B., Casey, J., & Sanchez, C. (2008). Better Builds with Maven. DevZuz, first edition. Walls, C. & Breidenbach, R. (2008). Spring in action. Manning, second edition. 25

NHibernate als ORM oplossing

NHibernate als ORM oplossing NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden.

Nadere informatie

Technisch Ontwerp W e b s i t e W O S I

Technisch Ontwerp W e b s i t e W O S I Technisch Ontwerp W e b s i t e W O S I WOSI Ruud Jungbacker en Michael de Vries - Technisch ontwerp Website Document historie Versie(s) Versie Datum Status Omschrijving / wijzigingen 0.1 20 nov 2008 Concept

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

INFITT01 - Internettechnologie WEEK 8

INFITT01 - Internettechnologie WEEK 8 INFITT01 - Internettechnologie WEEK 8 Programma Databases (JDBC, JNDI, ORM, JPA) MVC & Spring/Struts EJB Databases Veel web applicaties moeten informatie over langere tijd op kunnen slaan. Een voor de

Nadere informatie

Zelftest Java EE Architectuur

Zelftest Java EE Architectuur Zelftest Java EE Architectuur Document: n1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST JAVA EE ARCHITECTUUR Nota:

Nadere informatie

Service Data Objects. Wat is SDO? Dynamic data API

Service Data Objects. Wat is SDO? Dynamic data API Service Data Objects Het is tegenwoordig misschien moeilijk voor te stellen maar er zijn nog steeds situaties waarbij je geen netwerk verbinding hebt. Hier ben ik de afgelopen tijd meerdere malen tegenaan

Nadere informatie

Inhoudsopgave. Hoofdstuk 1: Ant...4

Inhoudsopgave. Hoofdstuk 1: Ant...4 Inhoudsopgave Hoofdstuk 1: Ant...4 1.1 Inleiding...4 1.2 Ant installeren...5 1.3 Ant gebruiken...7 1.3.1 Een project maken...7 1.3.2 Mijn eerste Ant-script...10 1.3.2.1 Projects...10 1.3.2.2 Targets...11

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden.

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden.

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: JPA 2.1 - Hibernate Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle

Nadere informatie

Technische nota AbiFire Rapporten maken via ODBC

Technische nota AbiFire Rapporten maken via ODBC Technische nota AbiFire Rapporten maken via ODBC Laatste revisie: 23 januari 2018 Inhoudsopgave 1 Inleiding... 2 2 Systeeminstellingen in AbiFire... 3 2.1 Aanmaken extern profiel... 3 2.2 Toewijzing extern

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: JPA 2.1 - Hibernate Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle

Nadere informatie

4 ASP.NET MVC. 4.1 Controllers

4 ASP.NET MVC. 4.1 Controllers 4 ASP.NET MVC ASP.NET is het.net raamwerk voor het bouwen van webapplicaties. De MVC variant hiervan is speciaal ontworpen voor het bouwen van dergelijke applicaties volgens het Model-View-Controller paradigma.

Nadere informatie

DWR 1.2 Installatiehandleiding Search Enricher

DWR 1.2 Installatiehandleiding Search Enricher DWR 1.2 Installatiehandleiding Search Enricher Versie 1.2 Datum 23 november 2010 Status Definitief Inhoud Inhoud...2 Inleiding...3 1.1 Interfacing...3 1.2 Configuratie...3 2 Installatie...4 2.1 Pre-requisites...4

Nadere informatie

Zelftest Java concepten

Zelftest Java concepten Zelftest Java concepten Document: n0838test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST JAVA CONCEPTEN Om de voorkennis nodig

Nadere informatie

Technische nota AbiFire5 Rapporten maken via ODBC

Technische nota AbiFire5 Rapporten maken via ODBC Technische nota AbiFire5 Rapporten maken via ODBC Laatste revisie: 29 juli 2009 Inhoudsopgave Inleiding... 2 1 Installatie ODBC driver... 2 2 Systeeminstellingen in AbiFire5... 3 2.1 Aanmaken extern profiel...

Nadere informatie

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Wat is een database? Een verzameling van georganiseerde data Een database bestaat uit applicaties, SQL en het DBMS Watis eendbms? EenDBMS

Nadere informatie

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous 2006-2007 Inhoudsopgave 1 2 1.1 Programmeertaal PHP5..................... 2 1.2 MySQL database......................... 3 1.3 Adobe Flash...........................

Nadere informatie

Programmeren met databanken volgens het lagenmodel in C#

Programmeren met databanken volgens het lagenmodel in C# Programmeren met databanken volgens het lagenmodel in C# met Visual Studio en MySQL HA-2267-02 Informaticabeheer Bert Cauwenberg en Lieven Pauwels Werkgroep Handel 2016 Guimardstraat 1, 1040 Brussel Guimardstraat

Nadere informatie

Capita Selecta Design Patterns voor administratieve applicaties

Capita Selecta Design Patterns voor administratieve applicaties Capita Selecta voor administratieve applicaties Bij afstudeerproject: Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving Henk van de Ridder 26 augustus 2006 Inhoud 26

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden.

Nadere informatie

Copyright IBS 2006. Nieuwbouw. Vereenvoudigd en versnelt Java ontwikkeling. Huub Cleutjens

Copyright IBS 2006. Nieuwbouw. Vereenvoudigd en versnelt Java ontwikkeling. Huub Cleutjens Nieuwbouw Vereenvoudigd en versnelt Java ontwikkeling Huub Cleutjens Inhoud IBS en Java Keuzes: taal / architectuur Productiviteit / arbeidsdeling IBS Java Development Accelerator Persistence UI Persistence

Nadere informatie

Session Beans.

Session Beans. Session Beans joost.vennekens@kuleuven.be Prequel: annotaties Nieuw Java feature Gestructureerde manier om extra info toe te voegen aan code (ipv. commentaar) @Author( name = "Joost Vennekens", date =

Nadere informatie

Handleiding JCreator. Inhoud. Een Workspace en een eerste project maken

Handleiding JCreator. Inhoud. Een Workspace en een eerste project maken Handleiding JCreator Inhoud Een Workspace en een eerste project maken Een tweede project maken De editor van JCreator Aanpassen van de basis-directory Documentatie over klassen en methoden van de JDK Bestand

Nadere informatie

Programmeren met databanken volgens het lagenmodel in C#

Programmeren met databanken volgens het lagenmodel in C# Programmeren met databanken volgens het lagenmodel in C# met Visual Studio en MySQL HA-2267-04 Informaticabeheer Bert Cauwenberg en Lieven Pauwels Werkgroep Handel 2017 Guimardstraat 1, 1040 Brussel Guimardstraat

Nadere informatie

Kleine cursus PHP5. Auteur: Raymond Moesker

Kleine cursus PHP5. Auteur: Raymond Moesker Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven

Nadere informatie

Enterprise Connectivity. Marnix van Bo. TU Delft Elek Software Architect 20 jaar ervarin ontwikkeling

Enterprise Connectivity. Marnix van Bo. TU Delft Elek Software Architect 20 jaar ervarin ontwikkeling Fir rst Base Enterprise Connectivity Marnix van Bo chove First Base: opgericht in 2001 TU Delft Elek ktrotechniek - 1998 Software Architect 20 jaar ervarin g met software ontwikkeling Presentatie Ideeën

Nadere informatie

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13 5 Inhoud Inhoud Over dit boek 7 1 Eclipse IDE (Integrated Development Environment) 9 2 Functionele specificatie 13 3 Implementatie grafische gebruikersinterface 31 4 De klassen en methoden 57 5 Technische

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden.

Nadere informatie

ETIM UP Handleiding Ketenstandaard Bouw en Installatie Versie:

ETIM UP Handleiding Ketenstandaard Bouw en Installatie Versie: ETIM UP Handleiding Ketenstandaard Bouw en Installatie Versie: 25-07-17 Handleiding ETIM UP 1 Inhoudsopgave Over ETIM UP...3 1 Algemeen...4 1.1 Website...4 1.2 Toegang...4 1.3 Bestandsformaten...4 2 Dashboard...5

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren November 2014 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 1 Inhoudstafel 1 Introductie 3 1.1

Nadere informatie

Dynamiek met VO-Script

Dynamiek met VO-Script Dynamiek met VO-Script Door Bert Dingemans DLA Ontwerp & Software bert@dla-architect.nl Inleiding Op de SDGN nieuwsgroep voor Visual Objects ontstond laatst een draad van berichten over de nieuwe libraries

Nadere informatie

Dynamische webapplicaties in Java

Dynamische webapplicaties in Java Dynamische webapplicaties in Java October 7, 2006 In java is het mogelijk dynamische webpagina s te implementeren. De code om de dynamische gegevens te genereren staat in servlets of Java Server Pages

Nadere informatie

return an ; } private I L i s t l i j s t ;

return an ; } private I L i s t l i j s t ; In bovenstaande code werd de binding t e k s t. DataBindings. Add(new Binding ( Text, l i j s t, ) ) ; gebruikt om de eigenschap Text van het object tekst (dwz. tekst.text) te binden aan het object lijst.

Nadere informatie

Mach3Framework 5.0 / Website

Mach3Framework 5.0 / Website Mach3Framework 5.0 / Website Handleiding Mach3Builders Inhoudsopgave 1 Inloggen...5 1.1 Ingelogd blijven...6 1.2 Wachtwoord vergeten...7 2 Applicatie keuzescherm...8 2.1 De beheeromgeving openen...9 3

Nadere informatie

DATAMODELLERING BASIS UML KLASSEMODEL

DATAMODELLERING BASIS UML KLASSEMODEL DATAMODELLERING BASIS UML KLASSEMODEL Inleiding In dit whitepaper wordt de datamodelleervorm basis UML klassemodel beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen.

Nadere informatie

Informatie & Databases

Informatie & Databases Informatie Wat is informatie en waaruit het bestaat? Stel op een kaart staat het getal 37 geschreven. Wat kun je dan zeggen van het cijfer 37? Niets bijzonders, toch? Alleen dat het een getal is. Gaat

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden.

Nadere informatie

Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel:

Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel: Eenvoudig voorbeeld. Er wordt verondersteld dat er met VS 2008 EXPRESS gewerkt wordt. Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel: (Sommige schermafdrukken zijn afkomstig

Nadere informatie

What is the advantage of using expression language instead of JSP scriptlets and JSP expressions?

What is the advantage of using expression language instead of JSP scriptlets and JSP expressions? Web 3: Theorievragen No Scriptlets What is the advantage of using expression language instead of JSP scriptlets and JSP expressions? Geen javacode tussen de html. What is the difference between the. operator

Nadere informatie

Software Test Documentation

Software Test Documentation FACULTEIT INGENIEURSWETENSCHAPPEN & WE- TENSCHAPPEN DEPARTMENT OF COMPUTER SCIENCE AND APPLIED COMPUTER SCIENCE Software Test Documentation Software Engineering Nicolas Carraggi, Youri Coppens, Christophe

Nadere informatie

Acht stappen voor JSF

Acht stappen voor JSF Acht stappen voor JSF Inleiding In deze tutorial zullen we JSF (Java server faces) installeren. Wat we niet beschrijven is hoe te werken met JSF, over dit onderwerp zijn er genoeg boeken en internetsites

Nadere informatie

Selenium IDE Webdriver. Introductie

Selenium IDE Webdriver. Introductie Selenium IDE Webdriver Het Wielsem 10, 5231 BW s- Hertogenbosch, telefoon 073-6409311 e- mail info@testwork.nl internet http://www.testwork.nl 1 Inhoudsopgave 1 Inhoudsopgave... 2 2 Selenium IDE... 3 3

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: 5 - Mockito Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten

Nadere informatie

Release notes Release

Release notes Release 1 Release notes Release 2018.7-07-08-2018 Inhoud 1. Inleiding... 3 2. Gebouw... 4 2.1. Apps... 4 2.2. Gebruikers op gebouw... 5 2.3. Mapping - Makkelijker (ont)koppelen van producten en materialen... 5

Nadere informatie

Gimme Five! Op weg naar TYPO3 5.0 'Phoenix'

Gimme Five! Op weg naar TYPO3 5.0 'Phoenix' Gimme Five! Op weg naar TYPO3 5.0 'Phoenix' Waarom TYPO3 5.0? Waarom TYPO3 5.0? Enkele redenen: Waarom TYPO3 5.0? Enkele redenen: Complexiteit De TYPO3 Core architectuur heeft zijn limiet bereikt en is

Nadere informatie

Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 11 juli 2017 Linux User Group Nijmegen

Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 11 juli 2017 Linux User Group Nijmegen Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 11 juli 2017 Linux User Group Nijmegen Inleiding Dit praatje gaat over Elasticsearch. De onderwerpen die aan bod komen: Wat is Elasticsearch?

Nadere informatie

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database. SQL manipulatietaal We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: INSERT : toevoegen van gegevens DELETE : verwijderen van gegevens UPDATE : wijzigen van gegevens

Nadere informatie

Een website maken met databasetoegang.

Een website maken met databasetoegang. Hoofdstuk 5 Een website maken met databasetoegang. In dit hoofdstuk gaan we het weblog dat je in hoofdstuk 4 hebt gemaakt verder uitbreiden. Een belangrijk onderdeel wordt toegevoegd aan de applicatie,

Nadere informatie

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise Inhoudsopgave 1. Voorbereiding... 4 2. Web Service Connector tool configuratie... 5 3. TaskCentre taak voor het aanmaken van

Nadere informatie

Specialisatie RTES - Project FunnyScreens. Installatie en gebruik van JUnit

Specialisatie RTES - Project FunnyScreens. Installatie en gebruik van JUnit Installatie en gebruik van JUnit Auteurs: Niels Hendriks - 89713 Matthijs Langenberg - 89870 Wiebe van Schie - 84313 Siet Toorman - 91623 Job Vermeulen 90589 Semester: 6 DSO: QSO: Dhr. R.J.W.T. Tangelder

Nadere informatie

BEFDSS. Het Belgische uitwisselingsformaat voor onderzoekgegevens afkomstig van visueel rioolonderzoek. 1/12/2006 1 / 6

BEFDSS. Het Belgische uitwisselingsformaat voor onderzoekgegevens afkomstig van visueel rioolonderzoek. 1/12/2006 1 / 6 Het Belgische uitwisselingsformaat voor onderzoekgegevens afkomstig van visueel rioolonderzoek. 1/12/2006 1 / 6 Inhoudstafel... 1 1 Voorwoord... 3 2 De samenstelling van het uitwisselingsformaat... 4 3

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: - XSL-FO Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden.

Nadere informatie

Inhoudsopgave. Hoofdstuk 1.Inleiding...3

Inhoudsopgave. Hoofdstuk 1.Inleiding...3 Struts Inhoudsopgave Hoofdstuk 1.Inleiding...3 1.1.Design patterns...3 1.1.1.Model 1 Architectuur...3 1.1.2.Model 2 Architectuur (MVC)...4 1.2.Frameworks...6 Hoofdstuk 2.Struts installatie...7 2.1.Installatie

Nadere informatie

Op de Virtual Appliance is MySQL voorgeïnstalleerd. MySQL is momenteel de meest gebruikte database op het internet.

Op de Virtual Appliance is MySQL voorgeïnstalleerd. MySQL is momenteel de meest gebruikte database op het internet. Het installeren van WordPress Nu je een volledig werkende virtuele server hebt is het tijd om er een applicatie op te installeren. We beginnen met de blogtool WordPress. De database De eerste stap is het

Nadere informatie

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. Herhaling Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. De basisbouwsteen is het object; een geïntegreerde eenheid van data en operaties werkend op deze

Nadere informatie

DATAMODELLERING DATA MAPPING MODEL

DATAMODELLERING DATA MAPPING MODEL DATAMODELLERING DATA MAPPING MODEL Inleiding In dit whitepaper wordt de datamodelleervorm data mapping model beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen. Wil

Nadere informatie

MA!N Rapportages en Analyses

MA!N Rapportages en Analyses MA!N Rapportages en Analyses Auteur Versie CE-iT 1.2 Inhoud 1 Inleiding... 3 2 Microsoft Excel Pivot analyses... 4 2.1 Verbinding met database... 4 2.2 Data analyseren... 5 2.3 Analyses verversen... 6

Nadere informatie

Mach3Framework 5.0 / Website

Mach3Framework 5.0 / Website Mach3Framework 5.0 / Website Handleiding Mach3Builders Inhoudsopgave 1 Inloggen...4 1.1 Ingelogd blijven...5 1.2 Wachtwoord vergeten...6 2 Applicatie keuzescherm...7 2.1 De beheeromgeving openen...8 3

Nadere informatie

Koppeling met een database

Koppeling met een database PHP en MySQL Koppeling met een database 11.1 Inleiding In PHP is het eenvoudig om een koppeling te maken met een database. Een database kan diverse gegevens bewaren die met PHP aangeroepen en/of bewerkt

Nadere informatie

Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 17 maart 2018 Nederlandse Linux Gebruikers Groep

Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 17 maart 2018 Nederlandse Linux Gebruikers Groep Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 17 maart 2018 Nederlandse Linux Gebruikers Groep Inleiding Dit praatje gaat over Elasticsearch. De onderwerpen die aan bod komen:

Nadere informatie

DataFlex 19.0 SQL Server

DataFlex 19.0 SQL Server Connections to SQL Server 1 Agenda Connecties Aanpassingen in applicaties 2 Connecties Kort overzicht 3 SQL manier Connectie maken met een server (login) Connectie stelt je in staat om tabellen in een

Nadere informatie

WebHare Professional en Enterprise

WebHare Professional en Enterprise WebHare Professional en Enterprise Publicatie module Site inrichting handleiding Datum 19 november 2002 Aantal pagina s: 31 Versie: 2.01 Doelgroep Sysops Gebruikers met site aanmaak rechten Gebruikers

Nadere informatie

De plug-in is heel eenvoudig te installeren met een setup-programma. Waarna je een aantal menu opties in het tools menu er bij krijgt.

De plug-in is heel eenvoudig te installeren met een setup-programma. Waarna je een aantal menu opties in het tools menu er bij krijgt. Plsqldoc Genereer je documentatie Beeklaan 444 2562 BK Den Haag www.darwin-it.nl info@darwin-it.nl KvK 27283780 ING 65.35.40.663 Technical Architect Net als (vrijwel) elke ontwikkelaar vind ik het documenteren

Nadere informatie

opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren

opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren Handleiding om te beginnen met mysql WorkBench. In twee stappen 0. WorkBench verbinden met mysql 1. een hallo

Nadere informatie

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele Informatica Objectgeörienteerd leren programmeren Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode Objectgeörienteerd

Nadere informatie

Beheer van databanken

Beheer van databanken Beheer van databanken Wim De Proost Jan Jochems Pieter Van den Akkerveken Departement Handelswetenschappen en Bedrijfskunde Bachelor Informatica 3 de jaar Academiejaar 2011-2012 2 Inhoud INLEIDING... 3

Nadere informatie

Open SQL Server Management Studio en log in als Administator. Je ziet dan wat je in figuur 2.1 ziet.

Open SQL Server Management Studio en log in als Administator. Je ziet dan wat je in figuur 2.1 ziet. Hoofdstuk 2 Een ASP.NET applicatie met ADO.NET opzetten In dit hoofdstuk ga je een eenvoudige website opzetten, waarbij je een aantal gegevens uit een database ophaalt. Je moet je kennis van ADO.NET dus

Nadere informatie

Handleiding voor Zotero versie 2.0

Handleiding voor Zotero versie 2.0 Handleiding voor Zotero versie 2.0 Michiel Wolda De handleiding voor Zetero is geschreven voor de lezers van het boek Deskresearch: Informatie selecteren, beoordelen en verwerken: tweede editie (Van Veen

Nadere informatie

Inhoudsopgave. Hoofdstuk 1.RMI...2

Inhoudsopgave. Hoofdstuk 1.RMI...2 - CORBA Inhoudsopgave Hoofdstuk 1.RMI...2 1.1.Inleiding...2 1.2.De remote...4 1.3.Het remote...5 1.4.De server...6 1.5.De server opstarten...8 1.6.De client applicatie...8 1.7.De stub en skeleton en...10

Nadere informatie

Indoor Navigation System

Indoor Navigation System Project Indoor Navigation System Onderwerp: Indoor Navigation System Document: Handleiding Ontwikkeltools Groep: EII6RTa Auteurs: 1. Jordi Betting 109277 2. Jerome Bos 113180 3. Theo Miltenburg 112883

Nadere informatie

App onderdelen. Source files. Android app onderdelen 1/6

App onderdelen. Source files. Android app onderdelen 1/6 Android app onderdelen 1/6 App onderdelen Een Android project bestaat uit een aantal onderdelen die hieronder beschreven worden. In het project venster kan je de mappen weergeven volgens de hieronder aangeduide

Nadere informatie

Object Oriented Programming

Object Oriented Programming Object Oriented Programming voor webapplicaties Door Edwin Vlieg Waarom OOP? Basis uitleg over OOP Design Patterns ActiveRecord Model View Controller Extra informatie Vragen OOP Object Oriented Programming

Nadere informatie

Auteur Arjaan den Ouden Datum 4 december 2013 Status Definitief Versie 1.0

Auteur Arjaan den Ouden Datum 4 december 2013 Status Definitief Versie 1.0 Auteur Arjaan den Ouden Datum 4 december 2013 Status Definitief Versie 1.0 Behoudens uitzondering door de wet gesteld, mag zonder schriftelijke toestemming van de rechthebbende op het auteursrecht van

Nadere informatie

Een database gebruiken

Een database gebruiken Een database gebruiken In een vorige handleiding heb ik laten zien hoe je met Scratch soortgelijke gegevens kunt opslaan in een lijst om deze op een later moment weer op te halen. Als voorbeeld las ik

Nadere informatie

Automatisering voor Financiële Dienstverleners. Werken met Queries en Merge Documenten. For more information visit our website at www.pyrrho.

Automatisering voor Financiële Dienstverleners. Werken met Queries en Merge Documenten. For more information visit our website at www.pyrrho. Automatisering voor Financiële Dienstverleners Werken met Queries en Merge Documenten For more information visit our website at www.pyrrho.com Date: Document Nr: 30 maart, 2007 UBizzMerge, Versie 4.0 Status:

Nadere informatie

Client Applicaties (Browser+Desktop) http/https. Apache Webserver. http proxy. WMS WFS Adm SLD Tomcat. Tomcat. GeoServer. PostGIS

Client Applicaties (Browser+Desktop) http/https. Apache Webserver. http proxy. WMS WFS Adm SLD Tomcat. Tomcat. GeoServer. PostGIS WMS voor Kadastrale kaart Limburg GEORZ-lab Datum: 17 juli 2009 Auteur: GEORZ-lab, Just van den Broecke Versie: 2 Contact: Ebrahim Hemmatnia (Adviseur PPI GEO, Kadaster), tel. 088 183 22 16. Inleiding

Nadere informatie

Dit document beschrijft belangrijke aandachtspunten voor de installatie van Deep Defender. Ook omschrijft dit document hoe de beheerder kan omgaan

Dit document beschrijft belangrijke aandachtspunten voor de installatie van Deep Defender. Ook omschrijft dit document hoe de beheerder kan omgaan Dit document beschrijft belangrijke aandachtspunten voor de installatie van Deep Defender. Ook omschrijft dit document hoe de beheerder kan omgaan met Threat meldingen, driver problemen en hoe het product

Nadere informatie

KDE afstandsbediening-instellingen. Michael Zanetti Vertaler/Nalezer: Tom Albers

KDE afstandsbediening-instellingen. Michael Zanetti Vertaler/Nalezer: Tom Albers Michael Zanetti Vertaler/Nalezer: Tom Albers 2 Inhoudsopgave 1 Inleiding 5 1.1 Benodigdheden....................................... 5 2 Gebruik 6 2.1 Afstandsbedieningen en modi...............................

Nadere informatie

APEX vs OutSystems, een vergelijking door een gebruiker

APEX vs OutSystems, een vergelijking door een gebruiker WHITEBOOK APEX vs OutSystems, een vergelijking door een gebruiker Februari 2019 Auteur: Michel Vogelpoel INTEGRATIESPECIALIST Inleiding Als fervent gebruiker van APEX moet men ook af en toe over de Oracle

Nadere informatie

Software Factories. Toepassing van Domain Specific Languages. achtergrond

Software Factories. Toepassing van Domain Specific Languages. achtergrond In de software-industrie zijn budget- en deadline-overschrijdingen aan de orde van de dag, er wordt vaak niet aan de gestelde verwachtingen voldaan. Dit kan worden voorkomen door software-ontwikkeling

Nadere informatie

Deel 2: Endnote bibliografische software gebruiken als databasemanager en editor

Deel 2: Endnote bibliografische software gebruiken als databasemanager en editor Deel 2: Endnote bibliografische software gebruiken als databasemanager en editor Versie feb. 2015 pag. 38 Endnote output: 1. Organiseer je database 2. Doorzoek de referenties in je database 3. Publiceren,

Nadere informatie

Installatiehandleiding Business Assistent

Installatiehandleiding Business Assistent Installatiehandleiding Business Assistent Wijzigingsgeschiedenis Versie Datum Omschrijving Status 0.1 25-09-2014 Eerste opzet van het installatie Concept document. 1.0 04-11-2014 Geen: Commercieel maken

Nadere informatie

Uitgebreid voorstel Masterproef Informatica

Uitgebreid voorstel Masterproef Informatica HoGent Uitgebreid voorstel Masterproef Informatica Titel van het project: Optimalisatie & ontwikkeling van een gegevenstransfertool voor Business Intelligence-gebruikers Datum : 01/11/2012 Naam student

Nadere informatie

JSF webapplicatie performance

JSF webapplicatie performance JSF webapplicatie performance Kees Broenink (JSF expert), 27 januari 2009 JSF webapplicatie performance... 1 Applicatieserver in productie... 2 HotSpot... 2 Geheugen... 2 Webapplicatie performance analyse...

Nadere informatie

Beschrijving functioneel en technisch design van de website

Beschrijving functioneel en technisch design van de website Bespreking Punten: Beschrijving functioneel en technisch design van de website Nr. Punt 1 Student 2 Bedrijf 3 Algemene lay out 4 Technologieën 5 Webruimte en datatrafiek 1. Student Registratie Bij de registratie

Nadere informatie

Service Data Objects DEV. cross-language data access API

Service Data Objects DEV. cross-language data access API Service Data Objects cross-language data access API Het is tegenwoordig misschien moeilijk voor te stellen maar er zijn nog steeds situaties waarbij je geen netwerkverbinding hebt. Hier ben ik de afgelopen

Nadere informatie

DATAMODELLERING ER DIAGRAM

DATAMODELLERING ER DIAGRAM DATAMODELLERING ER DIAGRAM Inleiding In dit whitepaper wordt de datamodelleervorm ER diagram beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen. Wil je een beeld krijgen

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden.

Nadere informatie

Installatiehandleiding Cane Webservices.nl Integratie

Installatiehandleiding Cane Webservices.nl Integratie Installatiehandleiding Cane Webservices.nl Integratie Inhoud INHOUD... 1 1. INTRODUCTIE... 2 DOELSTELLING DOCUMENT... 2 GERELATEERDE DOCUMENTEN... 2 GEBRUIK VAN HET DOCUMENT... 2 LEZERS DOELGROEP... 2

Nadere informatie

E-crown. Inhoud. Communicatieplatform - Gebruikershandleiding

E-crown. Inhoud. Communicatieplatform - Gebruikershandleiding E-crown Communicatieplatform - Gebruikershandleiding Inhoud 1. Wordpress multisite 2. Content beheer a. Content types b. Speciale content c. Publiceren, wachtend op review en concept d. Content sorteren

Nadere informatie

Toelichting op SDK. Versie 2.0. Datum 11 november 2010 Status definitief

Toelichting op SDK. Versie 2.0. Datum 11 november 2010 Status definitief Toelichting op SDK Versie 2.0 Datum 11 november 2010 Status definitief Inhoud 1 Inleiding 3 1.1 Wat is de Software developer kit? 3 1.2 Voor wie is de SDK bedoeld? 3 1.3 1.4 Waarvoor kan de SDK gebruikt

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren Maart 2015 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 2 December 2014 Yannick Verschueren

Nadere informatie

Entity Framework en Entity SQL

Entity Framework en Entity SQL Thema Entity Framework en Entity SQL DATABASETOEGANG EN OBJECT RELATIONAL MAPPING MET HET ENTITY-MODEL. Hoe bouw je een persistence-laag met ADO.NET 3.5? De auteur maakt in zijn voorbeeld gebruik van het

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: 5 - Mockito Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten

Nadere informatie

Thinking of development

Thinking of development Thinking of development Databases Arjan Scherpenisse HKU / Miraclethings Agenda voor vandaag Opdracht tussenstand State diagram / Observer pattern Bret Victor Databases 2/42 Opdracht tussenstand Slides

Nadere informatie

«Technische gids» Netwerkinstallatie en Terminal Server/Citrix

«Technische gids» Netwerkinstallatie en Terminal Server/Citrix 14/04/01 B50/v4.00/S/TG003.02 «Technische gids» Netwerkinstallatie en Terminal Server/Citrix System Voor gebruik bij de installatie van Sage BOB 50 School Edition 2014 Oplossing Sage BOB 50 2 Hoewel aan

Nadere informatie

Handleiding RS Form! 1.0.4

Handleiding RS Form! 1.0.4 Handleiding RS Form! 1.0.4 Inhoud 1. Controlepaneel... 3 2. Forms Manager... 4 2.1 Nieuwe form aanmaken... 4 2.2 Nieuwe fields toevoegen... 7 2.3 Wijzigen/verwijderen bestaande Forms, Fields... 10 Versie

Nadere informatie

Software Design Document

Software Design Document Software Design Document Mathieu Reymond, Arno Moonens December 2014 Inhoudsopgave 1 Versiegeschiedenis 2 2 Definities 3 3 Introductie 4 3.1 Doel en Scope............................. 4 4 Logica 5 4.1

Nadere informatie