1 / 17

JDBC Java DataBase Connectivity

JDBC Java DataBase Connectivity. SISTEMI ITIS B. CASTELLI. Anno Scolastico 2007-2008. Accesso remoto al DB. Istruzioni SQL. Rete. DataBase. Utente. Server di DataBase. Host client. Host server. Accesso remoto al DB.

Download Presentation

JDBC Java DataBase Connectivity

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico 2007-2008

  2. Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Server di DataBase Host client Host server

  3. Accesso remoto al DB • JDBC fornisce uno strato di accesso verso database completo e soprattutto ad oggetti • Accesso generalizzato a livello applicazione • Indipendenza dal tipo di DataBase • Uso di driver forniti dal produttore di DataBase

  4. Java Application JDBC API JDBC Driver Manager Pure Java JDBC JDBC-ODBC Bridge Driver ODBC Architettura software Host Client Host server Database Server

  5. Accesso remoto al DB MySQL Istruzioni SQL Rete MySQL Utente Server di DataBase Host client Host server Linux • Utilizza drivers JDBC scritti interamente in Java

  6. Accesso remoto al DB MySQL • Applicativo java come front-end al Database • Connessione diretta tramite rete, con protocollo proprietario • Server di Database relazionale ad oggetti • MySQL fornisce le classi java jdbc per il client

  7. JDBC Java Application MySQL Connector Pure Java JDBC MySQL Host Client Host server MySQL DataBase Server

  8. Accesso remoto al DB Microsoft ODBC Istruzioni SQL Utente ODBC Layer Rete DataBase Archivi locali Host remoto Host client • Utilizza drivers JDBC-ODBC bridge

  9. ODBC Layer • Interfaccia intermedia del Client per connettersi al database • Rappresenta una serie di “C-Level API” • Dipendente dalla piattaforma Microsoft • Drivers non scritti in puro Java

  10. JDBC Java Application General Application Access Excel Paradox Oracle dBase ODBC Driver Manager JDBC-ODBC Bridge ODBC Layer ODBC Layer Host Client DataBase su host remoto Host remoto

  11. Accesso per MySQL Occorre prima aggiungere la libreria dei driver JDBC mysql-connector-java-5.1.5-bin.jar I numeri 5.1.5 dipendono dalla versione della libreria. Essa contiene tutte le classi Java usate per accedere a MySQL mediante JDBC. Si scarica da http://www.mysql.com/products/connector/j/

  12. Accesso per MySQL • Driver: org.gjt.mm.mysql.Driver E’ la classe Java principale (driver) per accedere a MySQL • URL: jdbc:mysql://host-server:port/nome-DB Es: jdbc:mysql://localhost:3306/user_db?user=root&password=1234 Rappresentazione standard usata per referenziare una risorsa in rete. Specifica protocollo, host-server DataBase, con parametri, a cui connettersi

  13. Esempio: StatementODBC Semplice applicazione Java per eseguire comandi SQL su un DataBase ODBC. Sintassi: java StatementODBC nome-ODBC istruzione-sql Esempio: java StatementApp accessdb “select * from alunni” Le istruzioni necessarie per collegarsi ad un database sono: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); carica il driver specificato. In questo caso usa JdbcOdbc bridge Connection conn = DriverManager.getConnection("jdbc:odbc:accessdb","",""); tenta la connessione al database accessdb. No user, no password

  14. StatementODBC Se la connessione al DB va a buon fine, la chiamata del metodo torna un oggetto di tipo Connection col quale si crea un oggetto Statement tramite il quale è possibile effettuare la query sul database: Statement stm = conn.createStatement(); ResultSet rs = stm.executeQuery(“select * from alunni”); L’oggetto ResultSet rappresenta il risultato di una query come sequenza di record che si ottiene mediante un ciclo while sul metodo rs.next();

  15. StatementODBC Un semplice esempio che stampa solo la prima colonna di un ResultSet ottenuto dall’esecuzione di una query: while (rs.next()) { System.out.print(rs.getString(1)); } Il metodo rs.getString(1); torna il valore della prima colonna del record corrente. Si cicla mentre ci sono ancora record da stampare, ovvero rs.next() torna il valore true. Nel programma si usa il metodo displayResult(rs), più completo e generalizzato, che stampa anche il nome di ogni colonna e il carattere | come separatore di campo di ogni record.

  16. Codice di StatementODBC import java.sql.*; class StatementODBC { public static void main(String args[]) { if(args.length!=2){ System.out.println("Scrivere: java StatementODBC nome-ODBC sql"); System.out.println("Esempio: java StatementODBC accessdb \"select * from alunni\""); System.exit(0); } try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url="jdbc:odbc:"+args[0]; Connection conn = DriverManager.getConnection(url,"",""); Statement stm = conn.createStatement(); ResultSet rs = stm.executeQuery(args[1]); if(rs!=null) displayResults(rs); conn.close(); }catch(Exception ex){ System.out.println(ex); System.exit(0); } } // metodo main

  17. Codice di StatementODBC static void displayResults(ResultSet r) throws SQLException { ResultSetMetaData rmeta = r.getMetaData(); // stampa i nomi delle colonne int numColumns=rmeta.getColumnCount(); for(int i=1;i<=numColumns;++i) { if(i<numColumns) System.out.print(rmeta.getColumnName(i)+" | "); else System.out.println(rmeta.getColumnName(i)); } // stampa i dati di ogni riga while(r.next()){ for(int i=1;i<=numColumns;++i) { if(i<numColumns) System.out.print(r.getString(i)+" | "); else System.out.println(r.getString(i).trim()); } // for } // while } // metodo displayResults } // classe StatementApp

More Related