Εδώ είναι απαραίτητο για τις ενσωματωμένες προσεγγίσεις αλλά όχι για το JDBC:
* Ενσωμάτωση και συλλογή κώδικα: Οι ενσωματωμένες δηλώσεις SQL και SQLJ δεν κατανοούνται από τους τυπικούς μεταγλωττιστές C, COBOL ή Java. Η δουλειά του Precompiler είναι:
* Αναλύστε το SQL: Αναλύει τις ενσωματωμένες δηλώσεις SQL, τον έλεγχο της σύνταξης και την επικύρωση των αλληλεπιδράσεων βάσεων δεδομένων.
* Δημιουργία κωδικού γλώσσας κεντρικού υπολογιστή: Μεταφράζει αυτές τις δηλώσεις SQL σε κλήσεις σε API του οδηγού βάσης δεδομένων (ή ισοδύναμους μηχανισμούς πρόσβασης βάσεων δεδομένων χαμηλού επιπέδου). Αυτό δημιουργεί κώδικα γλώσσας ξενιστή που αλληλεπιδρά με τη βάση δεδομένων, τη σύνδεση χειρισμού, την εκτέλεση ερωτήματος και την ανάκτηση αποτελεσμάτων.
* Συνδυάστε με τον κωδικό γλώσσας υποδοχής: Ο Precompiler υφαίνει αυτόν τον κώδικα που δημιουργήθηκε πίσω στον πηγαίο κώδικα του προγράμματος κεντρικού υπολογιστή, δημιουργώντας ένα πλήρες πρόγραμμα έτοιμο για τυποποιημένη συλλογή.
* Χαρτογράφηση τύπου δεδομένων: Ο Precompiler χειρίζεται τη χαρτογράφηση μεταξύ των τύπων δεδομένων της γλώσσας του κεντρικού υπολογιστή και των τύπων δεδομένων της βάσης δεδομένων. Αυτό είναι κρίσιμο επειδή η γλώσσα υποδοχής και η βάση δεδομένων μπορεί να χρησιμοποιούν διαφορετικές αναπαραστάσεις για αριθμούς, χορδές, ημερομηνίες κ.λπ.
* Δυναμικός χειρισμός SQL: Εάν το ενσωματωμένο SQL χρησιμοποιεί δυναμικό SQL (δηλώσεις SQL που κατασκευάστηκαν κατά το χρόνο εκτέλεσης), ο precompiler πρέπει να δημιουργήσει τον κατάλληλο κώδικα για να χειριστεί την κατασκευή και την εκτέλεση αυτών των δυναμικά παραγόμενων ερωτημάτων.
διαφορετική προσέγγιση του JDBC:
Το JDBC χρησιμοποιεί μια εντελώς διαφορετική αρχιτεκτονική. Οι δηλώσεις SQL αντιμετωπίζονται ως χορδές εντός του κώδικα Java. Ο οδηγός JDBC χειρίζεται τη μετάφραση και την εκτέλεση αυτών των χορδών. Δεν είναι απαραίτητη η ακρίβεια επειδή:
* Εκτέλεση χρόνου εκτέλεσης: Το SQL αποστέλλεται στη βάση δεδομένων *κατά το χρόνο εκτέλεσης *. Ο οδηγός JDBC φροντίζει για την ανάλυση και την εκτέλεση των δηλώσεων SQL.
* SQL που βασίζεται σε συμβολοσειρά: Το SQL περνά ως συμβολοσειρά. Ο μεταγλωττιστής Java δεν χρειάζεται ιδιαίτερη γνώση της σύνταξης SQL.
* ευθύνη οδηγού: Ο οδηγός είναι υπεύθυνος για όλη την επικοινωνία με τη βάση δεδομένων, συμπεριλαμβανομένης της χαρτογράφησης τύπου και του χειρισμού σφαλμάτων.
Στην ουσία, τα ενσωματωμένα SQL και SQLJ απαιτούν από τους Precompilers να γεφυρώσουν το χάσμα μεταξύ της γλώσσας υποδοχής και της βάσης δεδομένων κατά τη διάρκεια της μεταγλώττισης, ενώ η JDBC χειρίζεται αυτή τη γεφύρωση κατά το χρόνο εκτέλεσης χρησιμοποιώντας ένα πρόγραμμα οδήγησης. Αυτό καθιστά το JDBC πιο ευέλικτο και φορητό, αλλά δυνητικά λιγότερο αποτελεσματικό σε ορισμένες περιπτώσεις από την σφιχτά ολοκληρωμένη προσέγγιση των ενσωματωμένων SQL και SQLJ.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα