Hibernate Object relational mapping

Slides:



Advertisements
Verwante presentaties
Update on EduStandard: public-private platform in Dutch education Henk Nijstad, Kennisnet / november 2013.
Advertisements

Waitstats 2005/ april Wat gaan we doen? • Even voorstellen • Performance problemen • Een veel gebruikte aanvliegroute • Wat zijn waitstats.
Hoe SQL injection werkt
Internet College 2 Architecturen. Architectuur van netwerktoepassingen •Peer to peer –Windows werkgroep •File- en printer sharing •Internet connection.
PHP & MYSQL LES 03 PHP & DATABASES. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Access en MySql Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
Thursday, 10 July 2014 donderdag 10 juli 2014 Click Klik.
GUI Router en Switch Afstudeerproject Maarten Diels & Geypens Björn.
Lucene/SOLR 1: inleiding + indexering
Frédérique Harmsze - Macaw 22 juni Wie ben ik?  Frédérique Harmsze  Information Worker Consultant bij Macaw sinds 2004  Intranet-projecten met.
Van domeinklasse tot implementatie
OOP met Java Sessie 1.
MagentaPurpleTeal PinkOrangeBlue LimeBrown RedGreen Introductie C# /.NET
SQL VOOR BIOLOGEN © 2011 M.L. Hekkelman CMBI Radboud UMC.
Biml en Data Vault.
Hibernate Ignace Van Tricht Bert Jacobs 2 Juni 2009
Voor VBA programmeurs Maurice de Beijer.  Maurice de Beijer.  The Problem Solver.  Visual Basic MVP.  Blog: theproblemsolver/default.aspxhttp://msmvps.com/blogs/
Speaking OData to SharePoint 2010 in a RESTful manner Michaël Hompus | Principal Developer | Winvision.
OOS Object geOrienteerd Software-ontwerp - 4 Codeerperikelen Singleton Specificeren Scheiding GUI en Domein Facade.
Greenfoot Workshop Bobby - Snake.
Faculteit Ingenieurswetenschappen & Wetenschappen Software Engineering Publicatie Management Systeem Groep se1 Software Engineering Thierry Coppens.
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
SQL injections en meer... PERU. web application vulnerabilities Cross Site Scripting (21.5%) SQL Injection (14%) PHP includes (9.5%) Buffer overflows.
Computervaardigheden en Programmatie Universiteit AntwerpenObjecten 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
Modula vs Java MODULE Show; CONST PI = ; TYPE PointRc = RECORD x,y : INTEGER; speed : REAL; angle : REAL; END; VAR a,b : PointRc; BEGIN.
Server side scripting 1 Webtechnologie Lennart Herlaar.
Algoritmiek Arrays: wat zijn dat en wat kun je ermee? Loops: hoe hou je ze in bedwang? Hoorcollege 6 - Ma. 9 okt L.M. Bosveld-de Smet.
Hoorcollege 8 Game object structuren. Arrays in games Grid-gebaseerd speelveld (zoals Tetris) Lijst van spelers Lijst van inventory items Lijst van alle.
Eerste deeltoets Uitwerking. Resultaten Gemiddeld: 6,01 Tips voor de volgende keer: – Werk in klad uit, schrijf duidelijk – Oefenen met loops en tellertjes.
Hoorcollege 7 Collections, arrays. Programma ‘Snowflakes’ Sneeuwvlok object.
Subversion Version control
Workshop PHP Een productencatalogus Met database.
JProject02 Bert Jacobs Ignace Van Tricht 4 juni 2009.
Algoritmiek Java GUIs, AWT en Swing API Overzicht te bestuderen stof, voorbeeldtentamen Hoorcollege 15 - Ma. 11 dec L.M. Bosveld-de Smet.
Java DataBase Connectivity
JAVA1 H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING. Collections framework Is een verzameling van data structuren, interfaces en algoritmen Meest voorkomende.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag GUI  command line redirection.
Hoofdstuk 2 Java. Soorten Java-programma’s nJava Applet programma “leeft” op een WWW-pagina nJava Application programma heeft een eigen window nJavascript.
Hoofdstuk 9 Objecten en klassen.
PHP Windows Microsoft ASP Internet Open Source PHP.
Deel 9: Relationele Databases: Oef. & 1e client- server app 1 Internetapplicaties Deel 9: Relationele Databases: Oefeningen en 1e client- serverapplicatie.
Deel XIII Eerste echte e-commerce applicatie (iteraties + impl ) 1 Internetapplicaties Deel 13: Eerste echte e-commerce applicatie: Enkele iteraties met.
Internetapplicaties - IV Collecties 1 Internetapplicaties Deel 4: Java hulpklassen: Collecties.
Deel XIX Security, Servlets & authenticatie 1 Internetapplicaties Deel XIX: Security, Servlets & Authenticatie.
Deltion College Engels B1 Gesprekken voeren [Edu/005] thema: applying for a job can-do : kan een eenvoudig sollicitatiegesprek voeren © Anne Beeker Alle.
Deltion College Engels B1 Schrijven [Edu/004]/ subvaardigheid lezen thema: reporting a theft can-do : kan formulieren waarin meer informatie gevraagd wordt,
Writing exercise This one goes into your language portfolio!!! You have until the end of the week to hand it in… (So you have a little longer than it says.
Web Applicaties Bouwen met Visual Studio .NET
1 Oracle InterConnect - Pagoni files - KC Server Development & Programming Languages 11 mei 2006 Harm Verschuren.
1 december KC Development Tools Oracle HTML DB 2.0.
1 Okt 4, 2005 Oracle en XML. 2 Okt 4, 2005 xml in database Datatype XMLTYPE  hét xml datatype in de database CLOB, varchar2... Opslag XMLType (Object)tabel.
PHP & MYSQL LES 04 CMS: BEST PRACTICE. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
We zijn toch allemaal zoekende?
Hoofdstuk 10.1 Toepassing: Bitmap-editor. nKlik punten op scherm nPlaatje verschuiven left, right, up, down nPlaatje bewerken clear, invert, bold, outline.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
EML en IMS Learning Design
In samenwerking met HowITsDone JSF versus AngularJS client-server 2.0.
In samenwerking met HowITsDone Spring as legacy Hoe innovatie legacy kan worden.
C++ C++ als een verbetering van C Abstracte datatypen met classes Constructoren en destructoren Subklassen binding van functies 1.
The beast has been released! 4 arcade-style games Interviews with famous people in the game industry Develop browsers games for any device (phone, tablet,
Algoritmiek Class Hierarchies, Inheritance. Hoorcollege 12 - Ma. 20 nov L.M. Bosveld-de Smet.
1 OMI Modelleren van content. 2 Vocabulary Content “gevangen” in begrippenapparaat: Vocabulary: lijst met termen nauwelijks semantiek Ontology:
NHibernate in DeltaShell
Computervaardigheden Hoofdstuk 4 — Databank (Basis)
Datamodellering en –verwerking 8C020 college 9. Terugblik college week 8 Terugkoppeling opdracht deel A Toepassingen van Petri-netten in biologie Oefeningen.
Java & het Web Programma: Databases (jdbc, JNDI, ORM, JPA)
SQL Cursus deel
SQL Les 7 24 February 2019.
SQL Les 9 12 May 2019.
Software Development fundamentals
Transcript van de presentatie:

Hibernate Object relational mapping

Problemen ● Objecten moeten van en naar de database komen ● Zuivere JDBC is veel boilerplate code: – ResultSets omzetten in transfer objects – Code schrijven voor elke select, insert, update en delete

Oplossing ● Hibernate als ondersteuning voor je DAO's ● 1 object = 1 record (*) ● 1 class = 1 tabel (*) ● Mapping van class naar tabel externaliseren in.hbm.xml ● Object geörienteerde queries (HQL) als alternatief voor relationeel geörienteerde queries (SQL)

Layered architecture Presentation layer DAO layer Service layer Transfer objects MySQL Hibernate

Hibernate in Spring ● QuestionDao extend HibernateDaoSupport ● Gebruik getHibernateTemplate().* in QuestionDao ● Configureer LocalSessionFactoryBean als sessionFactory – DataSource – Properties – Mapping locations ● Injecteer de sessionFactory in DAO ● Configureer mapping bestanden

HibernateDaoSupport ● public class QuestionDaoImpl extends HibernateDaoSupport implements QuestionDao { public List findAllQuestions() { return getHibernateTemplate().loadAll(Question.class); } public void storeQuestion(Question question) { getHibernateTemplate().saveOrUpdate(question); } public void deleteQuestion(Question question) { getHibernateTemplate().delete(question); } }

SessionFactory (1) ● Definieer een DataSource in spring:

SessionFactory (2) ● org.hibernate.dialect.MySQLDialect true update...

SessionFactory (3) ●... classpath:/be/kahosl/museumapp/to/Question.hbm.xml

Mapping bestand ● Question.hbm.xml ● Demo: vergelijking met Question.java

Workshop: Hibernate ● interface be.kahosl.museumapp.dao.QuestionDao – List findAllQuestions(); – void storeQuestion(Question question); – void deleteQuestion(Question question); ● class be.kahosl.museumapp.dao.QuestionDaoImpl – Implementeer met getHibernateTemplate().* ● Configureer dataSource en sessionFactory in generalContext.xml ● Kopieer Question.hbm.xml van de website ● Configureer Question.hbm.xml ● Pas QuestionService aan en run Museumapp ● Bekijk de database met de Query browser, verifieer dat er een nieuwe tabel Question is (refresh) ● Voer uit in de Query browser: insert into question(id, text, points) values (1234, 'Where are you?', 10) ● Run Museumapp

Workshop: testdata ● create ● Injecteer questionDao in testDataCreator ● TestDataCreator implements InitializingBean – afterPropertiesSet() wordt door Spring aangeroepen nadat alle dependencies zijn geinjecteerd – Zorg ervoor dat afterPropertiesSet() elk Question testobject opslaat in de databank

Answer.hbm.xml ●

List mapping ●...

HQL ● SQL maar voor objecten, geen select: public List findAllQuestionsWithMinimumPoints( int minimumPoints) { return getHibernateTemplate().find( "from Question where points > ?", new Integer(minimumPoints) ); } ● Quick & dirty test: QuestionDao questionDao = (QuestionDao) applicationContext.getBean("questionDao"); List questionList2 = questionDao.findAllQuestionsWithMinimumPoints(8); System.out.println("Size: " + questionList2.size());

Support ● Hibernate website ● Hibernate forum ● Hibernate documentatie ● Hibernate boeken – Hibernate in action ● Demo: documentatie native SQL