Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Σκοπός: θα δημιουργήσουμε μια εφαρμογή σε 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/entry/a_personal_data_storage_application.

ΥΓ3: τα παραπάνω τα πρωτοδημοσίευσα στο http://forum.ubuntu-gr.org/viewtopic.php?f=9&t=3337.

Δημοσ.
Καλό, θα βοηθήσει πολλούς αρχάριους! :-)

 

Ευχαριστώ, το ελπίζω!

 

Δεν διάβασα και πολύ τι γράφεις αλλά καλό θα ήταν ένα:

CREATE TABLE IF NOT EXISTS

 

Εμ, διάβασε το ολόκληρο να μας πεις και τη γνώμη σου ;)

Σοβαρά τώρα, θα λάβω υπόψη την πρόταση σου στην επόμενη "έκδοση" του οδηγού. :-)

Δημοσ.

Εσυ που ασχολεισαι με netbeans, πες μου πος στο καλο θα τρεξω τα netbeans σε Aero (vista) , βασικα τον phone emuletor , μου σπαει τα νευρα οταν κανω debug ενα phone app και μου ριχνει τα Aero.

Δημοσ.
Μα είναι σε netbeans :(

 

οπότε?

 

Εσυ που ασχολεισαι με netbeans, πες μου πος στο καλο θα τρεξω τα netbeans σε Aero (vista) , βασικα τον phone emuletor , μου σπαει τα νευρα οταν κανω debug ενα phone app και μου ριχνει τα Aero.

 

ασχολούμαι με netbeans αλλά δεν ασχολούμαι με vista οπότε δεν μπορώ να βοηθήσω στο ερώτημα σου

 

---------- Το μήνυμα προστέθηκε στις 11:18 ----------

 

Θα πρότεινα κάποιος/κάποια από τους/τις moderators/administrators/κλπ να σύνδεσμο προς προσθέσει τον οδηγό αυτόν (Οδηγός δημιουργίας εφαρμογής Java με embedded βάση δεδομένων) στην ενότητα "Άρθρα και βοηθήματα/tutorials γραμμένα από τα μέλη του Insomnia".

 

Ευχαριστώ :-)

Δημοσ.
Θα πρότεινα κάποιος/κάποια από τους/τις moderators/administrators/κλπ να σύνδεσμο προς προσθέσει τον οδηγό αυτόν (Οδηγός δημιουργίας εφαρμογής Java με embedded βάση δεδομένων) στην ενότητα "Άρθρα και βοηθήματα/tutorials γραμμένα από τα μέλη του Insomnia".

 

Ευχαριστώ :-)

 

Δεν υπάρχει τέτοια ενότητα στο forum. Υπάρχει όμως το Insomnia Wiki, όπου μπορείς μόνος σου να ανεβάσεις ένα άρθρο. Για περισσότερα, δες το Insomnia Wiki HOWTO

Δημοσ.
Κι έλεγα ότι κάτι μου θυμίζει.

 

Anyway, το υποβάλω ως report για να το δουν τα «μεγάλα κεφάλια» του forum... :-)

 

thanks :-)

  • 2 χρόνια αργότερα...
  • 5 μήνες μετά...
Δημοσ.

Εσυ που ασχολεισαι με netbeans, πες μου πος στο καλο θα τρεξω τα netbeans σε Aero (vista) , βασικα τον phone emuletor , μου σπαει τα νευρα οταν κανω debug ενα phone app και μου ριχνει τα Aero.

 

Πρέπει να είναι θέμα της Java και των βιβλιοθηκών για τα Windows. Δοκίμασε τη νεότερη έκδοση της Java και του Netbeans.

 

Το αρχείο PortableAtzenta.jar πού βρίσκεται;

Δημοσ.

...

 

Το αρχείο PortableAtzenta.jar πού βρίσκεται;

 

Έχω να ασχοληθώ με Java περίπου από τότε.

 

Σε κάθε περίπτωση, δεν ισχύει πλέον αυτό που έγραψα (τότε) στον οδηγό;

 

Στο παράθυρο New Desktop Application στο Project Name δίνουμε PortableAtzenta ...

...

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

...

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...