MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1



Σχετικά έγγραφα
MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Προγραμματισμός ΙΙ (Java) 6. Διαχείριση δεδομένων

NetBeans και σχετικά προγράμματα. Κακαρόντζας Γεώργιος Κέντρο Αριστείας Ανοιχτού Λογισμικού ΑΠΘ 1ο Θερινό Σχολείο Κώδικα

10 η Διάλεξη Python Βάσεις δεδομένων στη python

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

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

, Evaluation of a library against injection attacks

Σχεδιασμός Βάσεων Δεδομένων

DELETE, UPDATE, INSERT.

DELETE, UPDATE, INSERT

Εργαστήριο Βάσεων Δεδομένων. Δικαιώματα Χρηστών Προβολές

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που

databases linux - terminal (linux / windows terminal)


5 η Διάλεξη Python - Αρχεία

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

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Εργαστήριο Βάσεων Δεδομένων

Εργαστήριο βάσεων δεδομένων. MySQL Stored Procedures

Περιγραφή της εργασίας

Θέματα Προγραμματισμού Διαδικτύου ~ MySQL & PHP ~

Κεφάλαιο 14 Διασύνδεση με Εφαρμογές JAVA

Κεφάλαιο 1. Βασικά Στοιχεία της Java... 13

(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

Σχεδιασμός Βάσεων Δεδομένων

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

Εργαστήριο #10 (Ε10) 1

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

. Εργαστήριο Βάσεων Δεδομένων. Triggers

Διαχείριση χρηστών και δικαιωμάτων

Εργαστήριο Βάσεων Δεδομένων

HOWTO instal Joomla by A. Andreatos

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

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

Μιχάλης Μασούρας Επιβλέπων Καθηγητής: Ιγνάτιος Δεληγιάννης

2. Για να δημιουργήσουμε το πρώτο ή κάθε νέο Backup set πατάμε στο εικονίδιο και εμφανίζεται ο Wizard του Backup set

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ανάπτυξη διαδικτυακών εφαρμογών με την Python Το εργαλείο Flask

Ανοικτά Ακαδημαϊκά Μαθήματα

Εγκατάσταση λογαριασμού ηλεκτρονικού ταχυδρομείου στο MICROSOFT OUTLOOK

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

Βασικές Εντολές SQL. Θεωρία & Εντολές SQL. Γραμμή Εντολών MS-DOS (MySQL)

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Η SQL ως γλώσσα τροποποίησης Δεδομένων

Λευτέρης Κουμάκης ΠΟΛΥΜΕΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ ΣΤΗΝ ΥΓΕΙΑ

Startup Guide Backup365. Οδηγός γρήγορης εγκατάστασης και εκκίνησης. Για να δοκιμάσετε την υπηρεσία θα πρέπει να ακoλουθήσατε τα παρακάτω βήματα:

Σύνολα Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

SQL Data Manipulation Language

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 4

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Χειμερινό εξάμηνο Πέτρος Κωμοδρόμος. eng.ucy.ac.cy/petros

Βάσεις Δεδομένων Ι SQL Μέρος 1 ο. Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Βάσεις Δεδομένων

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Προγραμματισμός στην πλευρά του εξυπηρετητή: Τεχνολογία Servlet

Διάλεξη 19: Προγραμματισμός Βάσης Δεδομένων ΙΙΙ. Διδάσκων: Παναγιώτης Ανδρέου

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #3

Lecture 3: Introduction III

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

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 3ο Μάθημα: Εισαγωγή στην SQL. Δρ. Κωνσταντίνος Χ.

Εργαστήριο Βάσεων Δεδομένων

Εργαστήριο Βάσεων Δεδομένων. Triggers

Λογισµικό Ανοικτού Κώδικα και συστήµατα ιαχείρισης Περιεχοµένου. Βασίλης Στεφανίδης Καθηγητής ΠΕ19 ΓΕΛ Ασσήρου

Κέντρο Αριστείας Ανοιχτού Λογισμικού ΑΠΘ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Κεφάλαιο 5. Ορισµός Βάσεων εδοµένων µε SQL DDL - Άλλες Γλώσσες Σχεσιακών Βάσεων (QBE) Ι.Β. Σχεσιακές Γλώσσες Εµφύτευση / DDL Σελίδα 2.

ΕΠΛ 342 Βάσεις εδοµένων

Γρήγορος Οδηγός για το Εργαστήριο DebianDB

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

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

Ανάπτυξη Διαδικτυακών Τόπων. Τεχνολογία JDBC

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

Εργαστήριο Βάσεων Δεδομένων

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Κεφάλαιο 5. Ορισµός Βάσεων εδοµένων µε SQL DDL - Άλλες Γλώσσες Σχεσιακών Βάσεων (QBE) Ι.Β. Σχεσιακές Γλώσσες Εµφύτευση / DDL Σελίδα 2.

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

String SQL Injection Σε πρώτη φάση θα προσπαθήσουμε να παραβιάσουμε ως απλοί επισκέπτες το σύστημα, εισχωρώντας στο σύστημα ως διαχειριστές, παραβιάζο

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. ΑΥΤΟΜΑΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΕΞΕΤΑΣΗΣ (ja.e.s.) ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA

2 η Εργαστηριακή Άσκηση

Περιγραφή του EcoTruck

Lecture 19: Internal DB Programming II

Paybybank RESTful API GUIDE

Εισαγωγή στην Ανάπτυξη Εφαρμογών Web με Χρήση της Python, του Apache και του mod_python

Transcript:

MySQL + Γλώσσα Προγραμματισμού Ευαγγελία Πιτουρά 1

Database drivers Για να χρησιμοποιήσουμε μια βάση δεδομένων από μια γλώσσα προγραμματισμού χρειαζόμαστε έναν driver. JDBC είναι το API για τη Java και καθορίζει πως ένας πελάτης μπορεί να συνδεθεί με μια βάση δεδομένων Σύνδεση με τη βδ, εκτέλεση ερωτήσεων και τροποποιήσεων και συλλογή των αποτελεσμάτων Τεχνικά: είναι ένα σύνολο από κλάσεις στο java.sql package. Υπάρχει ένα JDBC για κάθε διαφορετικό ΣΔΒΔ Για τη MySQL: Connector/J Για MySQL και C++: Connector/C++ Ευαγγελία Πιτουρά 2

Βήμα 0: Εγκατάσταση του driver (Connector/J) Κατεβάστε Connector/J using binary distribution από: http://dev.mysql.com/downloads/connector/j/5.0.html Εγκατάσταση: unzip (or untar) και θέστε το mysql-connectorjava-[version]-bin.jar στο class path Αν χρησιμοποείτε Netbeans IDE, υπάρχει ήδη Οδηγίες: «Inside the Projects tab, right click on the Libraries node and select Add Library option. From the list of options, select MySQL JDBC Driver.» Ευαγγελία Πιτουρά 3

Παράδειγμα Δημιουργούμε μια βάση δεδομένων mysql> CREATE DATABASE testdb; Query OK, 1 row affected (0.02 sec) Φτιάχνουμε ένα νέο χρήστη και του δίνουμε δικαιώματα σε όλους τους πίνακες της testdb mysql> CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'test623 ; Query OK, 0 rows affected (0.00 sec) mysql> USE testdb; Database changed mysql> GRANT ALL ON testdb.* TO 'testuser'@'localhost'; Query OK, 0 rows affected (0.00 sec) Ευαγγελία Πιτουρά 4

Παράδειγμα Ευαγγελία Πιτουρά 5

Σύνδεση με τη βάση δεδομένων package name.mysql.first; import java.sql.connection; import java.sql.drivermanager; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; Ευαγγελία Πιτουρά 6

Σύνδεση με τη βάση δεδομένων Connection con = null; String url = "jdbc:mysql://localhost:3306/testdb"; String user = "testuser"; String password = "test623"; con = DriverManager.getConnection(url, user, password); url = "jdbc:mysql://localhost:3306/testdb Host Port όνομα βδ Ευαγγελία Πιτουρά 7

Εκτέλεση SQL εντολών στη βδ Η μέθοδος createstatement() του connection object δημιουργεί ένα Statement object για να στέλνουμε SQL εντολές στη βάση δεδομένων Statement st = null; st = con.createstatement(); Για να εκτελέσουμε SQL εντολές 1. Ερωτήσεις (select queries) rs = st.executequery(query); 2. Τροποποιήσεις (insert, update deletes) st.executeupdate(query); Ευαγγελία Πιτουρά 8

Τροποποίηση Η εκτέλεση της εντολής δεν επιστρέφει αποτελέσματα Statement st = null; st = con.createstatement(); String query = "INSERT INTO Authors(Id, Name) VALUES(6, Steven King'); st.executeupdate(query); Ευαγγελία Πιτουρά 9

Ερώτηση Η εκτέλεση της εντολής επιστρέφει αποτελέσματα. Τα αποτελέσματα εισάγονται σε ένα ResultSet object ένας πίνακας Statement st = null; ResultSet rs = null; st = con.createstatement(); String query = "SELECT * FROM Authors"; rs = pst.executequery(query); pst.close(); Ευαγγελία Πιτουρά 10

Ερώτηση: Cursor Τα δεδομένα από το ResultSet διαβάζονται μια πλειάδα (γραμμή, εγγραφή) τη φορά H μέθοδος next() προχωρά το δείκτη (cursor) στην επόμενη εγγραφή Επιστρέφει null όταν δεν υπάρχουν άλλες πλειάδες Statement st = null; ResultSet rs = null; st = con.createstatement(); String query = "SELECT * FROM Authors"; rs = pst.executequery(query); pst.close(); while (rs.next()) { System.out.print(rs.getInt(1)); System.out.print(": "); System.out.println(rs.getString(2)); } Ευαγγελία Πιτουρά 11

Prepared Statements Αντί να γράφουμε μέσα στην SQL έκφραση τις πραγματικές τιμές χρησιμοποιούμε placeholder (?) Προσδιορίζουμε τις τιμές αργότερα PreparedStatement pst = null; ResultSet rs = null; String author = "Trygve Gulbranssen"; pst = con.preparestatement("insert INTO Authors(Name) VALUES(?)") Προσδιορισμός τιμής pst.setstring(1, author); pst.executeupdate(); pst.close(); Ευαγγελία Πιτουρά 12

Περισσότερες πηγές Στο παρακάτω link μπορείτε να δείτε ένα ολοκληρωμένο πρόγραμμα Java http://www.cs.uoi.gr/~pvassil/courses/db_iii/exercises/javaexamples/simple/example1.java Επίσης: http://zetcode.com/db/mysqljava/ Οnline documentation : http://dev.mysql.com/doc/refman/5.0/en/connector-j.html Ευαγγελία Πιτουρά 13

Ερωτήσεις; Ευαγγελία Πιτουρά 14