Διαδικτυακές Εφαρμογές Ενότητα 1: JPA

Σχετικά έγγραφα
Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού

ΜΑΘΗΜΑ: Διαδικτυακές Εφαρμογές

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors

Ειδικά Θέματα Προγραμματισμού

Διαδικτυακές Εφαρμογές Ενότητα 4: Streams

Αυτοματοποιημένη χαρτογραφία

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 5: Κληρονομικότητα. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 7: Υπερφόρτωση τελεστών. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ειδικά Θέματα Προγραμματισμού

Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 6: Φιλικές συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Διαδικτύου

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου

Εισαγωγή στην Πληροφορική

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 8: Αρχεία. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 9: Ειδικά θέματα γλώσσας C/C++. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Διαδικτύου

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Βάσεις Δεδομένων. Ενότητα 5: ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Βάσεις Περιβαλλοντικών Δεδομένων

Τεχνολογία Πολιτισμικού Λογισμικού

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

Βάσεις Περιβαλλοντικών Δεδομένων

Προγραμματισμός Διαδικτύου

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Δικτύων Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Αντικειμενοστραφής Προγραμματισμός

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Προγραμματισμός Διαδικτύου

Ηλεκτρονικοί Υπολογιστές II

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Προγραμματισμός H/Y Ενότητα 7: Αρχεία. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Δομημένος Προγραμματισμός

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 1: Ορισμοί βασικών εννοιών: Μια πρώτη μοντελοποίηση. Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής

Ηλεκτρονικοί Υπολογιστές II

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 7β: SQL (Πρακτική Εξάσκηση 1) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

ΜΑΘΗΜΑ: Μεταγλωττιστές

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 7: Διευθυνσιοδότηση Internet Protocol (IP) v4

Θερμοδυναμική - Εργαστήριο

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Μοντελοποίηση Λογικών Κυκλωμάτων

Λογιστικές Εφαρμογές Εργαστήριο

Συστήματα Αναμονής. Ενότητα 1: Εισαγωγή. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Δίκτυα Υπολογιστών Ενότητα 9: Dynamic Host Configuration Protocol- DHCP

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 2: Μοντελο Συσχετίσεων Οντοτήτων, Μελέτη Περίπτωσης: Η βάση δεδομένων των CD

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διαχείριση Πολιτισμικών Δεδομένων

ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Τεχνολογία Πολιτισμικού Λογισμικού

Διαδικτυακές Εφαρμογές Ενότητα 3: Ανάπτυξη JavaEE 6 εφαρμογής με JSF2, EJB3 και JPA

Αντικειμενοστραφής Προγραμματισμός

Οργάνωση και Διοίκηση Πωλήσεων

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Οργανωσιακή Συμπεριφορά Ενότητα 1: Η έννοια της οργάνωσης και διοίκησης

Διαδικαστικός Προγραμματισμός

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

Transcript:

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα του ΤΕΙ Δυτικής Μακεδονίας και της Ανώτατης Εκκλησιαστικής Ακαδημίας Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Java Persistence Application - JPA

Σκοποί ενότητας Σε αυτή την ενότητα παρουσιάζεται το Java Persistence Application programming Interface - API. 5

Περιεχόμενα ενότητας (1/2) Εισαγωγή. Οντότητες Entities. Querying Entities. Παράδειγμα. Συνοψίζοντας. 6

Περιεχόμενα ενότητας (2/2) Main Class. Persistent Unit για την Main Class. Επίλογος. 7

Εισαγωγή (1/4) Το JPA 1.0 (Java Persistence API) δημιουργήθηκε για να λύσει προβλήματα που έχουν να κάνουν με την διατήρηση των δεδομένων και για να δημιουργήσει μια γέφυρα ανάμεσα στον αντικειμενοστραφή προγραμματισμό και τα σχεσιακά μοντέλα όπως είναι οι βάσεις δεδομένων. 8

Εισαγωγή (2/4) Η έκδοση που υπάρχει αυτήν την στιγμή είναι η έκδοση 2.0. Μπορούμε να χρησιμοποιήσουμε το συγκεκριμένο API για πρόσβαση και χειρισμό σχεσιακών δεδομένων από το Enterprise Java Beans (EJBs), τα συστατικά μέρη που απαρτίζουν τις εφαρμογές Web και τις εφαρμογές Java SE. 9

Εισαγωγή (3/4) Μέσω του JPA μπορούμε να ανεξαρτητοποιηθούμε από την SQL. Όλες οι κλάσεις και τα σχόλια (Annotations) από το συγκεκριμένο ΑΡΙ υπάρχουν στο javax.persistence πακέτο. 10

Εισαγωγή (4/4) Τα κύρια στοιχεία του JPA είναι τα εξής. ORM που είναι ο μηχανισμός για να αντιστοιχίσουμε αντικείμενα με δεδομένα που βρίσκονται σε μια βάση δεδομένων. Ο AΡΙ διαχειριστής οντοτήτων μέσω του οποίου μπορούμε να λειτουργίες που σχετίζονται με την βάση δεδομένων όπως Εισαγωγή, Ανάγνωση, Ενημέρωση, Διαγραφή (CRUD Create, Read, Update, Delete). JPQL (Java Persistence Query Language) μέσου του οποίου μπορούμε να λάβουμε μέσω μιας αντικειμενοστραφούς γλώσσας ερωτήσεων. JTA (Java Transaction API) που μας παρέχει μηχανισμούς συναλλαγής (Transactions) και κλειδώματος (locking) για την περίπτωση που έχουμε ταυτόχρονη πρόσβαση στα δεδομένα. Σύνδεση της επιχειρηματικής λογικής και των αντικειμένων 11

Οντότητες Entities (1/9) Θα πρέπει να γίνει ένας σαφής διαχωρισμός ανάμεσα στα στιγμιότυπα αντικείμενων (Objects instances) και στις οντότητες (Entities). Ένα στιγμιότυπο ενός αντικείμενου για κάποιο χρονικό διάστημα στην μνήμη του υπολογιστή, ενώ μια οντότητα είναι ένα αντικείμενο το οποίο υπάρχει για κάποιο διάστημα στην μνήμη του υπολογιστή, αλλά και μόνιμα αποθηκευμένο σε κάποια βάση δεδομένων. 12

Οντότητες Entities (2/9) Μια οντότητα μπορούμε να την αποθηκεύσουμε, να την διαγράψουμε και να την διαχειριστούμε χρησιμοποιώντας την γλώσσα ερωτημάτων JPQL. Η αντιστοίχιση ενός αντικειμένου με τον πίνακα της βάσης δεδομένων, γίνεται χρησιμοποιώντας metadata. 13

Οντότητες Entities (3/9) Τα metadata μπορούν να γραφτούν με δύο διαφορετικούς τρόπους. Annotations: o κώδικας της οντότητας σχολιάζεται κατευθείαν χρησιμοποιώντας annotations που περιγράφονται στο πακέτο javax.persistence. Extensible Markup Language (XML) descriptors: αντί την χρήση annotations μπορούμε να κάνουμε χρήση ενός XML αρχείου. 14

Οντότητες Entities (4/9) Ας δούμε ένα παράδειγμα για να κατανοήσουμε τα όσα έχουμε πει έως τώρα. Σύμφωνα με τα όσα γνωρίζετε μέχρι τώρα θα δημιουργήσουμε την κλάση Customer. Σχήμα 1. Δημιουργία κλάσης Custormer. 15

Οντότητες Entities (5/9) Εάν σε κάποια βάση δεδομένων υπάρχει ένας πίνακας CUSTOMER τότε θα πρέπει να χαρακτηρίσουμε την Customer σαν Entity και να την αντιστοιχίσουμε στον πίνακα της βάσης δεδομένων. 16

Οντότητες Entities (6/9) Mapping. Σχήμα 2. Mapping. 17

Οντότητες Entities (7/9) Το πρώτο πράγμα που θα πρέπει να κάνουμε είναι να σχολιάσουμε την κλάση σαν Entity. Αυτό γίνεται χρησιμοποιώντας το σχόλιο @Entity πριν να ορίσουμε την κλάση. 18

Οντότητες Entities (8/9) Στην συνέχεια θα πρέπει να ορίσουμε το πρωτεύον κλειδί χρησιμοποιώντας στο σχόλιο @Id και @GeneratedValue για να δηλώσουμε ότι το κλειδί παίρνει αυτόματα τιμές από την βάση δεδομένων και τέλος να ορίσουμε κάποια πεδία που μπορεί να μην είναι προαιρετικά, ή κάποια αλφαριθμητικά πεδία που έχουν διαφορετικό μέγεθος από το 255, χρησιμοποιώντας το σχόλιο @Column. 19

Οντότητες Entities (9/9) Μετά από τα προαναφερθέντα η κλάση διαμορφώνεται ως εξής. Σχήμα 3.Διαμορφωμένη κλάση. 20

Querying Entities (1/5) Όπως προαναφέρθηκε το JPA μας παρέχει την δυνατότητα να εκτελούμε λειτουργίες CRUD (Create, Read, Update, Delete) πάνω στις οντότητες, αλλά και να εκτελούμε σύνθετα ερωτήματα χρησιμοποιώντας την γλώσσα ερωτημάτων JPQL. Ο διαχειριστής οντοτήτων είναι ένα interface του οποίου η υλοποίηση έχει γίνει από το EclipseLink. 21

Querying Entities (2/5) Στον κώδικα που ακολουθεί μπορούμε να δούμε πως μπορούμε να δημιουργήσουμε έναν διαχειριστεί οντοτήτων και να αποθηκεύσουμε κάποιον πελάτη στην βάση δεδομένων. 22

Querying Entities (3/5) Στην επόμενη διαφάνεια μπορούμε να δούμε πως το interface του διαχειριστή οντοτήτων (EntityManager) μπορεί να χρησιμοποιηθεί για διαχειρισθεί οντότητες. Χρησιμοποιώντας τις μεθόδους persist() και find() ο διαχειριστής οντοτήτων κρύβει τις κλήσεις JDBC στην βάση δεδομένων καθώς και τις SQL δηλώσεις INSERT ή SELECT. 23

Querying Entities (4/5) Σχήμα 4. Querying Entities. 24

Querying Entities (5/5) Στην συνέχεια θα δούμε πως μπορούμε να εκτελέσουμε ερωτήματα χρησιμοποιώντας JPQL. Οι τύποι ερωτημάτων μπορεί να είναι τριών ειδών. Δυναμικά ερωτήματα, τα οποία δημιουργούνται δυναμικά κατά τον χρόνο εκτέλεσης. Στατικά, τα οποία δημιουργούνται κατά τον χρόνο εκτέλεσης. SQL ερωτήματα. 25

Παράδειγμα (1/3) Έστω ότι θέλουμε να βρούμε τα στοιχεία ενός πελάτη δίνοντας τον τηλεφωνικό του αριθμό. Αρχικά θα πρέπει να χρησιμοποιήσουμε το σχόλιο @NamedQuery ανάμεσα από το σχόλιο @Entity και τον ορισμό της κλάσης. Στη συνέχεια θα πρέπει να δώσουμε ένα όνομα και να συντάξουμε το ερώτημα. 26

Παράδειγμα (2/3) Σύμφωνα με τα προαναφερθέντα ο κώδικας της κλάσης γίνεται. Σχήμα 5. Ο κώδικας της κλάσης. 27

Παράδειγμα (3/3) Κάτι που θα πρέπει να τονίσουμε είναι ότι όταν διαγράφουμε μία οντότητα από την βάση δεδομένων με χρήση της μεθόδου EntityManager.remove( ). Το στιγμιότυπο του αντικειμένου συνεχίζει να υπάρχει στην μνήμη μέχρι να συλλεχθεί από τον συλλέκτη σκουπιδιών. 28

Συνοψίζοντας (1/2) Γνωρίζοντας για το JPA, τις οντότητες, τον διαχειριστή οντοτήτων και την γλώσσα ερωτημάτων JPQL θα γράψουμε μια μικρή εφαρμογή η οποία θα καταχωρεί το όνομα ενός πελάτη στην βάση δεδομένων. Στην κλάση Customer θα πρέπει να δημιουργήσουμε και τις κατάλληλες μεθόδους getters and setters, αλλά και τους constructors της κλάσης. 29

Συνοψίζοντας (2/2) Σχήμα 6. Συνοπτικά ο κώδικας. 30

Main Class (1/2) Η κλάση Main θα δημιουργήσει ένα στιγμιότυπο από την οντότητα Customer και θα εισάγει δεδομένα στις μεταβλητές. Αυτό που θα πρέπει να προσέξουμε είναι η χρήση της κλάσης Persistence για την δημιουργία ενός στιγμιότυπου EntityManagerFactory. Αναφέρεται στο MyEntityPU του οποίου η περιγραφή θα γίνει στην συνέχεια. 31

Main Class (2/2) Σχήμα 7. Main class. 32

Persistent Unit για την Main Class (1/4) Όπως προαναφέραμε η EntityManagerFactory αναφέρεται στην MyEntityPU το όνομα της οποίας αναφέρεται μέσα στο αρχείο persistence.xml το οποίο υπάρχει μέσα στον κατάλογο META-INF. Το xml αυτό αρχείο έχει πληροφορίες σχετικά με την βάση δεδομένων όπως την διεύθυνση δικτύου του Database Server, το όνομα της βάσης δεδομένων, το όνομα και τον κωδικό χρήστη. 33

Persistent Unit για την Main Class (2/4) Σχήμα 8. Persistent unit για τη Main Class. 34

Persistent Unit για την Main Class (3/4) Επίσης υπάρχει η δυνατότητα να τροποποιήσουμε το persistence.xml. Ώστε να υπάρχει η δυνατότητα δημιουργίας της βάσης δεδομένων σε περίπτωση που δεν υπάρχει. Η επόμενη διαφάνεια δείχνει τις αλλαγές που έγιναν στο αρχείο persistence.xml. 35

Persistent Unit για την Main Class (4/4) Σχήμα 9. Persistent unit για τη Main Class μετά από τις αλλαγές. 36

Επίλογος Όπως είδαμε το JPA μας διευκολύνει στο να απαλλαγούμε από την SQL και την βάση δεδομένων και να επικεντρωθούμε στην αντικειμενοστραφή ανάπτυξη λογισμικού. Βέβαια δεν είναι δυνατόν να αναφερθούμε σε όλες τις δυνατότητες του JPA. Όποιος ενδιαφέρεται να μάθει περισσότερα θα μπορούσε να δει το βιβλίο: Pro JPA 2, Mastering the Java TM Persistence API Mike Keith and Merrick Schnicariol. 37

Βιβλιογραφία 1. Java προγραμματισμός, Όγδοη έκδοση, Deitel Paul J., Deitel Harvey M., Εκδόσεις Γκιούρδας Μ.. 2. «Προγραμματισμός Internet και World Wide Web», Deitel Paul J., Deitel Harvey M., Εκδόσεις Γκιούρδας Μ.. 3. «Πλήρες εγχειρίδιο της Java 6», Lemay C, Εκδόσεις Γκιούρδας Μ., Αθήνα 2007. 38

Τέλος Ενότητας