Οδηγός δημιουργίας εφαρμογής Java με embedded βάση δεδομένων

...το μέρος για να ξεκινήσετε!

Συντονιστής: adem1

Κανόνες Δ. Συζήτησης
Παρακαλώ να επιλέξετε, με προσοχή, την άδεια που θέλετε να έχουν οι οδηγοί που συγγράφετε.
Πληροφορίες για τις άδειες μπορείτε να βρείτε εδώ.
Άμα επιθυμείτε κάποια άλλη άδεια επικοινωνήστε με κάποιο Διαχειριστή είτε Συντονιστή.

Σημαντικό είναι να χρησιμοποιήσετε την υπηρεσία http://imagebin.ubuntu-gr.org για τις εικόνες.

Οδηγός δημιουργίας εφαρμογής Java με embedded βάση δεδομένων

Δημοσίευσηαπό greatst » 08 Φεβ 2009, 21:32

Σκοπός: θα δημιουργήσουμε μια εφαρμογή σε Java η οποία θα χρησιμοποιεί μια ενσωματωμένη βάση δεδομένων JavaDB προκειμένου να υλοποιήσουμε μια απλή ατζέντα. Σκοπός είναι η εξοικίωση μας με τη δημιουργία εφαρμογών java που συνδέονται με βάση δεδομένων και (ίσως?) να μας μείνει και μια χρήσιμη εφαρμογή ως άμεσο και βραχυπρόθεσμο αποτέλεσμα.

Απαιτούμενα: Πρέπει να έχουμε εγκατεστημένο στον υπολογιστή μας το Netbeans (ο οδηγός βασίζεται στην έκδοση 6.5). Εάν το Netbeans λειτουργεί κανονικά, τότε αυτό σημαίνει ότι έχουμε και κάποιο JDK εγκατεστημένο και ρυθμισμένο στον υπολογιστή μας (ο οδηγός χρησιμοποιεί το Sun JDK 1.6.0 update12, αλλά υποθέτω ότι θα λειτουργεί και με το OpenJDK που ίσως έχουν πολλοί).

Πάμε λοιπόν: (όπου βλέπετε πλαίσιο quote με τον τίτλο Σημείωση, ΔΕΝ είναι απαραίτητο να το διαβάσετε για να ολοκληρώσετε την δημιουργία της εφαρμογής, αλλά δίνει πρόσθετες πληροφορίες)

Ξεκινάμε την εφαρμογή Netbeans. Κάνουμε κλικ στο Services. Κάνουμε διπλό κλικ στο Databases. Κάνουμε δεξί κλικ στο Databases και επιλέγουμε New Connection. Στο παράθυρο New Database Connection που εμφανίζεται και στην καρτέλα Basic setting, στο Data Input Mode επιλέγουμε Direct URL Entry. Στο Name επιλέγουμε Java DB (Embedded). Στο username δίνουμε user και στο password δίνουμε pass. Τσεκάρουμε το Remember password. Στο JDBC URL δίνουμε

Κώδικας: Επιλογή όλων
jdbc:derby:Atzenta;create=true


Πατάμε OK και αφού δημιουργηθεί η βάση δεδομένων μεταφερόμαστε αυτόματα στην καρτέλα Advanced. Δεν πειράζουμε τίποτε εκεί και πατάμε εκ νέου OK.

Παρατηρούμε ότι κάτω από το Databases δημιουργήθηκε το

Κώδικας: Επιλογή όλων
jdbc:derby:Atzenta;create=true [user on APP]


Σημείωση:
Ουσιαστικά λέμε στο Netbeans ότι θέλουμε σύνδεση με μια βάση δεδομένων με όνομα Atzenta. Η παράμετρος
Κώδικας: Επιλογή όλων
create=true
επιτρέπει τη δημιουργία της βάσης δεδομένων εάν αυτή δεν υπάρχει ήδη. Derby είναι το όνομα της JavaDB, όπου εδώ χρησιμοποιούμε την ενσωματωμένη έκδοση της, οπότε δεν απαιτείται χωριστή εγκατάσταση/συντήρηση/διαχείριση ενός συστήματος διαχείρισης βάσεων δεδομένων (DBMS).


Κάνουμε κλικ στο βελάκι ακριβώς αριστερά από αυτήν την καταχώριση. Στο Tables που εμφανίζεται κάνουμε δεξί κλικ και επιλέγουμε Create Table. Στο παράθυρο Create Table στο Table name δίνουμε Atzenta. Φτιάχνουμε 4 πεδία για τη βάση δεδομένων (συμπληρώνουμε τα στοιχεία για το πρώτο που ήδη υπάρχει και με το Add Column προσθέτουμε τρία ακόμη πεδία και τα συμπληρώνουμε) ως εξής:

Στο πρώτο πεδίο, τσεκάρουμε το Key (αυτόματα και ΣΩΣΤΑ αλλάζουν και άλλα τσεκαρίσματα και δεν πειράζουμε τίποτε), στο Column name δίνουμε aa. Πατάμε Add Column.

Στο δεύτερο πεδίο, στο Column name δίνουμε onoma, στο Data type επιλέγουμε VARCHAR, στο size δίνουμε 30. Πατάμε Add Column.

Στο τρίτο πεδίο, στο Column name δίνουμε eponimo, στο Data type επιλέγουμε VARCHAR, στο size δίνουμε 60. Πατάμε Add Column.

Στο τέταρτο πεδίο, στο Column name δίνουμε tilefono, στο Data type επιλέγουμε VARCHAR, στο size δίνουμε 15. Πατάμε OK.

Σημείωση:
Έχουμε λοιπόν μια βάση δεδομένων (Atzenta) με έναν πίνακα (Atzenta). Μην σας μπερδεύουν τα δύο ονόματα: δεν υπάρχει κανένα πρόβλημα που είναι ίδια, αλλά ΔΕΝ πρόκειται για το ίδιο πράγμα. Στον πίνακα της βάσης δεδομένων, φτιάξαμε μια στοιχειώδη δομή της ατζέντας μας. Για κάθε καταχώριση (εγγραφή) στην ατζέντα μας θα έχουμε έναν αύξων αριθμό (aa), το όνομα (onoma), το επώνυμο (eponimo) και το τηλέφωνο (tilefono). Από αυτά τα τέσσερα πεδία, μόνο ο αύξων αριθμός είναι υποχρεωτικός (είναι επίσης και το πρωτεύον κλειδί του πίνακα) και πρέπει να είναι ακέραιος αριθμός. Τα υπόλοιπα πεδία δεν είναι υποχρεωτικά και μπορούν να περιέχουν αλφαριθμητικούς χαρακτήρες. Μπορείτε εδώ να δημιουργήσετε μια ατζέντα προσαρμοσμένη στις ανάγκες σας με περισσότερα πεδία (πχ: τηλέφωνο οικίας, τηλέφωνο εργασίας, κλπ) ώστε ενδεχομένως να την χρησιμοποιήσετε και στην πράξη. Σημειώστε ότι για την απλότητα στην υλοποίηση της εφαρμογής, όταν θα την εκτελέσετε θα πρέπει εσείς να δίνετε κάθε φορά τον αύξων αριθμό σε κάθε εγγραφή της ατζέντας και αυτόν να μην ταυτίζεται με άλλους αριθμούς που έχετε δώσει ήδη.


Από το μενού επιλέγουμε File, New Project. Στο παράθυρο New Project στο Categories επιλέγουμε Java και στο Projects επιλέγουμε Java Desktop Application και πατάμε Next. Στο παράθυρο New Desktop Application στο Project Name δίνουμε PortableAtzenta και στο Choose Application Shell επιλέγουμε Database Application και χωρίς να πειράξουμε τίποτε άλλο πατάμε Next. Στο παράθυρο New Desktop Application στο Database Connection επιλέγουμε

Κώδικας: Επιλογή όλων
jdbc:derby:Atzenta;create=true [user on APP]


και πατάμε Next. Πατάμε Finish.

Από το μενού επιλέγουμε Run, Clean and Build Main Project.

Κλείνουμε το Netbeans (από το μενού επιλέγουμε File, Exit).

Μεταβαίνουμε στον φάκελο όπου το Netbeans αποθηκεύει τα projects (σε εμένα: NetBeansProjects), μεταβαίνουμε στον φάκελο PortableAtzenta, μεταβαίνουμε στον φάκελο dist. Ο φάκελος dist περιέχει όλα τα απαιτούμενα αρχεία έτοιμα για διανομή και εκτέλεση. Για την εκίνηση της εφαρμογής απαιτείται η εκτέλεση του αρχείου PortableAtzenta.jar. Για να το εκτελέσουμε, δεξί κλικ επάνω του και επιλέγουμε Άνοιγμα με Sun Java 6 Runtime (ή ότι αντίστοιχο μας βγάλει, πχ για OpenJDK).

Σημείωση:
Κάθε φορά που θα κάνουμε "καθαρό" χτίσιμο της εφαρμογής μας στο Netbeans (Run, Clean and Build Main Project) ο φάκελος dist θα διαγράφεται και θα αντικαθίσταται από νέο. Αυτός ο φάκελος θα περιέχει πάντα ένα αρχείο README.TXT με αυτόματα παραγόμενες οδηγίες για το πώς εκτελείται η εφαρμογή μας, το "βασικό" εκτελέσιμο αρχείο με τη μορφή όνομα_εφαρμογής.jar (στην περίπτωση του παραδείγματος μας PortableAtzenta.jar) και (πολλές φορές, στην περίπτωση εφαρμογής σαν αυτήν του παραδείγματος μας σίγουρα) έναν φάκελο lib όπου αυτόματα έχουν προστεθεί όλες οι βιβλιοθήκες που χρειάζεται η εφαρμογή μας, αρχεία της μορφής όνομα_βιβλιοθήκης.jar. Τέλος, ο φάκελος dist μπορέι να περιέχει και άλλα αρχεία ή/και άλλους φακέλους (όπως στην εφαρμογή μας). Αυτόν τον φάκελο dist περιέχει όλα τα αρχεία που χρειάζεται η εφαρμογή μας για να τρέχει αυτόνομα (φυσικά, πρέπει να υπάρχει στο μηχάνημα που θα εκτελεστεί η εφαρμογή κατάλληλη υποδομή java, για παράδειγμα το Sun JRE (Java Runtime Environment).


Εάν προτιμούμε την γραμμή εντολών, μπορούμε να ανοίξουμε ένα τερματικό και (εάν υποθέσουμε ότι το Netbeans αποθηκεύει στον φάκελο NetBeansProjects ο οποίος βρίσκεται στον "σπιτικό" μας κατάλογο) δίνουμε τις παρακάτω εντολές:

Κώδικας: Επιλογή όλων
cd ~/NetBeansProjects/PortableAtzenta/dist
java -jar PortableAtzenta.jar


Σημείωση:
Αφού τρέξετε για πρώτη φορά την εφαρμογή, θα παρατηρήσετε ότι δημιουργούνται κάποια αρχεία και ένας φάκελος στον υπολογιστή που έχουν σχέση με τη βάση δεδομένων. Πρόκειται για τα αρχεία:

α) createDDL.jdbc
Περιεχόμενο του αρχείου είναι η SQL εντολή δημιουργίας του πίνακα στην βάση δεδομένων, στο παράδειγμα μας:
Κώδικας: Επιλογή όλων
CREATE TABLE APP.ATZENTA (AA INTEGER NOT NULL, ONOMA VARCHAR(30), EPONIMO VARCHAR(60), TILEFONO VARCHAR(15), PRIMARY KEY (AA))

(μην σας μπερδέψει το APP: είναι το όνομα για το σχήμα που χρησιμοποιεί η βάση δεδομένων)

β) dropDDL.jdbc

γ) derby.log

δ) Atzenta (φάκελος που περιέχει τα αρχεία της βάσης δεδομένων).


Περιμένω τα σχόλια-παρατηρήσεις σας.

ΥΓ1: σύντομα (ελπίζω ότι) θα εμπλουτίσω τον οδηγό με περισσότερες οδηγίες αλλά και θεωρητικά σχόλια.
ΥΓ2: Πηγή έμπνευσης για τον οδηγό (και οδηγός για παρόμοια εφαρμογή): http://blogs.sun.com/JavaFundamentals/e ... pplication
Τελευταία επεξεργασία από greatst και 18 Φεβ 2009, 23:50, έχει επεξεργασθεί 2 φορά/ες συνολικά
προσωπική ιστοσελίδαgreatst in Launchpad

Γνώσεις ⇛ Linux: Όσο ζω μαθαίνω ┃ Προγραμματισμός: Μια χαρά ┃ Αγγλικά: Εξαιρετικά

Mac mini (late 2009) (8GB RAM) με OS X 10.11.6 [και Ubuntu 16.04 Server amd64 και άλλες GNU/Linux εικονικές μηχανές με 2GB RAM, 128MB VRAM+3D_acceleration η κάθε μία].
Άβαταρ μέλους
greatst
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 639
Εγγραφή: 14 Δεκ 2008, 00:41
Τοποθεσία: Κατερίνη
Launchpad: greatst
IRC: greatst
Εκτύπωση

Re: Οδηγός δημιουργίας εφαρμογής Java με embedded βάση δεδομένων

Δημοσίευσηαπό ftso » 08 Φεβ 2009, 21:41

Πολύ ωραία...μπράβο :)

Δεν ήξερα ότι υπάρχει JavaDB :mrgreen:

Αν μπορείς όμως βάλε και μερικά screenshots...
Άβαταρ μέλους
ftso
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6409
Εγγραφή: 12 Μάιος 2008, 13:40
Τοποθεσία: Αθήνα
IRC: ftso
Εκτύπωση

Re: Οδηγός δημιουργίας εφαρμογής Java με embedded βάση δεδομένων

Δημοσίευσηαπό cyberpython » 08 Φεβ 2009, 22:17

greatst++;
Πολύ ωραίο θέμα!

ftso έγραψε:Δεν ήξερα ότι υπάρχει JavaDB :mrgreen:


Βασικά, πρόκειται για το Apache Derby (παλαιότερα γνωστό ως IBM Cloudscape).
Είναι ένα εξαιρετικά ευέλικτο RDBMS, με πλήρη υποστήριξη SQL, φοβερά μικρό μέγεθος (περίπου 2MB) και τη δυνατότητα να λειτουργεί είτε ως server (όπως π.χ. ο MySQL Server) είτε ως embedded βάση δεδομένων (όπως το Firebird) !
Κοινότητα ΕΛ/ΛΑΚ Οικονομικού Πανεπιστημίου Αθηνών / Ubuntu-gr / My Web Log
Επίπεδο Γνώσεων Linux: Μέτριο, Προγραμματισμός: Ναι, Aγγλικά: Καλά
Λειτουργικό : Ubuntu 10.04 - 32bits
Η/Υ : Intel Core2 4400@2 GHz / 2GB DDR2 RAM / GeForce 8400 GS 512MB / Creative SB Audigy SE
Άβαταρ μέλους
cyberpython
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 733
Εγγραφή: 14 Μάιος 2008, 13:22
Εκτύπωση

Re: Οδηγός δημιουργίας εφαρμογής Java με embedded βάση δεδομένων

Δημοσίευσηαπό greatst » 09 Φεβ 2009, 18:54

Επεξεργασία της αρχικής δημοσίευσης του νήματος στις 20090209-1755:

Προστέθηκαν πλαίσια με την ένδειξη "Σημείωση:" με συμπληρωματικές επεξηγήσεις.
προσωπική ιστοσελίδαgreatst in Launchpad

Γνώσεις ⇛ Linux: Όσο ζω μαθαίνω ┃ Προγραμματισμός: Μια χαρά ┃ Αγγλικά: Εξαιρετικά

Mac mini (late 2009) (8GB RAM) με OS X 10.11.6 [και Ubuntu 16.04 Server amd64 και άλλες GNU/Linux εικονικές μηχανές με 2GB RAM, 128MB VRAM+3D_acceleration η κάθε μία].
Άβαταρ μέλους
greatst
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 639
Εγγραφή: 14 Δεκ 2008, 00:41
Τοποθεσία: Κατερίνη
Launchpad: greatst
IRC: greatst
Εκτύπωση

Re: Οδηγός δημιουργίας εφαρμογής Java με embedded βάση δεδομένων

Δημοσίευσηαπό greatst » 09 Φεβ 2009, 18:55

ftso έγραψε:... Αν μπορείς όμως βάλε και μερικά screenshots...


Ναι, το έχω στα ... προσεχώς ;)
προσωπική ιστοσελίδαgreatst in Launchpad

Γνώσεις ⇛ Linux: Όσο ζω μαθαίνω ┃ Προγραμματισμός: Μια χαρά ┃ Αγγλικά: Εξαιρετικά

Mac mini (late 2009) (8GB RAM) με OS X 10.11.6 [και Ubuntu 16.04 Server amd64 και άλλες GNU/Linux εικονικές μηχανές με 2GB RAM, 128MB VRAM+3D_acceleration η κάθε μία].
Άβαταρ μέλους
greatst
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 639
Εγγραφή: 14 Δεκ 2008, 00:41
Τοποθεσία: Κατερίνη
Launchpad: greatst
IRC: greatst
Εκτύπωση

Re: Οδηγός δημιουργίας εφαρμογής Java με embedded βάση δεδομ

Δημοσίευσηαπό konnn » 03 Νοέμ 2010, 20:40

Ξεκινάμε την εφαρμογή Netbeans. Κάνουμε κλικ στο Services. Κάνουμε διπλό κλικ στο Databases. Κάνουμε δεξί κλικ στο Databases και επιλέγουμε New Connection. Στο παράθυρο New Database Connection που εμφανίζεται και στην καρτέλα Basic setting, στο Data Input Mode επιλέγουμε Direct URL Entry. Στο Name επιλέγουμε Java DB (Embedded). Στο username δίνουμε user και στο password δίνουμε pass. Τσεκάρουμε το Remember password. Στο JDBC URL δίνουμε


Καλησπέρα, χρησιμοποιώ την 6.9.Εκεί που λέει Driver name τι βάζω??
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3568
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση

Re: Οδηγός δημιουργίας εφαρμογής Java με embedded βάση δεδομ

Δημοσίευσηαπό greatst » 22 Νοέμ 2010, 19:39

konnn έγραψε:
Ξεκινάμε την εφαρμογή Netbeans. Κάνουμε κλικ στο Services. Κάνουμε διπλό κλικ στο Databases. Κάνουμε δεξί κλικ στο Databases και επιλέγουμε New Connection. Στο παράθυρο New Database Connection που εμφανίζεται και στην καρτέλα Basic setting, στο Data Input Mode επιλέγουμε Direct URL Entry. Στο Name επιλέγουμε Java DB (Embedded). Στο username δίνουμε user και στο password δίνουμε pass. Τσεκάρουμε το Remember password. Στο JDBC URL δίνουμε


Καλησπέρα, χρησιμοποιώ την 6.9.Εκεί που λέει Driver name τι βάζω??


Λυπάμαι αλλά έχω καιρό να χρησιμοποιήσω το Netbeans. Ίσως κάποιος συμφορουμίτης που το χρησιμοποιεί θα μπορούσε να σου απαντήσει.
προσωπική ιστοσελίδαgreatst in Launchpad

Γνώσεις ⇛ Linux: Όσο ζω μαθαίνω ┃ Προγραμματισμός: Μια χαρά ┃ Αγγλικά: Εξαιρετικά

Mac mini (late 2009) (8GB RAM) με OS X 10.11.6 [και Ubuntu 16.04 Server amd64 και άλλες GNU/Linux εικονικές μηχανές με 2GB RAM, 128MB VRAM+3D_acceleration η κάθε μία].
Άβαταρ μέλους
greatst
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 639
Εγγραφή: 14 Δεκ 2008, 00:41
Τοποθεσία: Κατερίνη
Launchpad: greatst
IRC: greatst
Εκτύπωση

Re: Οδηγός δημιουργίας εφαρμογής Java με embedded βάση δεδομ

Δημοσίευσηαπό sokoban4ever » 23 Νοέμ 2010, 05:44

konnn έγραψε:jdbc

Δοκίμασες να βάλεις jdbc (ή JDBC );
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

Re: Οδηγός δημιουργίας εφαρμογής Java με embedded βάση δεδομ

Δημοσίευσηαπό konnn » 23 Νοέμ 2010, 10:59

jdbc, με μικρά. Επίσης από προεπιλογή στο πεδίο JDBC URL: έχει jdbc://mysql
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3568
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση


  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Οδηγοί - How to - Tutorials