Le JavaServer Pages - Lezione 6 L accesso ai Database

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Le JavaServer Pages - Lezione 6 L accesso ai Database"

Transcript

1 Le JavaServer Pages - Lezione 6 L accesso ai Database A cura di Giuseppe De Pietro Contenuti Al giorno d oggi la maggior parte degli applicativi Web, anche semplici, hanno la necessità di interagire con un database, e parlando di JSP diventa obbligatorio trattare l argomento, anche se non in maniera dettagliata, data la vastità dei temi che tratteremo. In questa lezione parleremo di: JDBC e di come, grazie a questa interfaccia, sia possibile astrarsi dal DBMS (Data Base Management System) utilizzato. Come installare MySQL e come creare un database. Come installare MSDE, il motore gratuito di SQL Server Eseguiremo operazioni di selezione, aggiunta e modifica record su database di MySQL e MS SQL Server Come usare le Stored Procedure con JSP e MS SQL Server 2000 (MySQL non le supporta). Non parleremo degli accessi a database di Access perché Access non è un server di database, anche se Microsoft garantisce la multiutenza. Quindi se ne sconsiglia l utilizzo per applicativi Web dove l accesso simultaneo alle risorse è un aspetto importante che influisce molto sulle prestazioni dell applicazione. Inoltre, mentre per MySQL, SQL Server 2000, ci sono dei driver gratuiti di tipo 4, i più efficienti, per Access invece bisogna affidarsi ai cosiddetti ponti JDBC-ODBC, i meno efficienti in assoluto (esistono dei driver di tipo 4 per Access, ma sono prodotti commerciali che non ho mai testato). Per un elenco completo dei driver a disposizione per Java, collegarsi a: JDBC JDBC racchiude una serie di classi che permettono di interfacciarsi con un database relazionale. Con JDBC è possibile astrarsi dal tipo di DBMS che si utilizza, vale a dire che basta caricare il driver specifico e poi non c è più alcuna differenza nell accedere ad un tipo di database piuttosto che ad un altro. I programmi scritti con JDBC sono portabili su più sistemi operativi e sono indipendenti dal database relazionale a cui ci si connette, bisogna solo tener conto del diverso dialetto SQL parlato dal DBMS. JSP e MySQL Installazione di MySQL MySQL è un DBMS relazionale open source disponibile per diverse piattaforme, Windows, Linux, Solaris, FreeBSD, Mac/OS e altri. JSP Lezione 6 L accesso ai Database 1

2 Nato per usi interni da TcX una società svedese di consulenza, l intento primario dei progettisti era quello di creare un prodotto performante, infatti, MySQL fu da subito un prodotto veloce e affidabile e fu impiegato anche in ambito universitario e da alcuni Internet Provider. In realtà le eccellenti prestazioni si devono all assenza di alcune funzionalità presenti in altri Database: la gestione delle transazioni (introdotte con le tabelle InnoDB nella versione 4), le Stored Procedure, i trigger, chiavi esterne e vincoli di integrità referenziale, e delle differenze del linguaggio SQL rispetto allo standard SQL92. Queste mancanze sono notevoli ma se i nostri progetti possono fare a meno di queste funzionalità, allora MySQL è il prodotto ideale, considerando che è gratuito se utilizzato sul Web. In questa sezione vedremo l installazione in ambiente Windows e faremo riferimento all ultima versione stabile del pacchetto, la d (a breve rilascerò una lezione interamente dedicata a JSP e Linux). Dopo aver scaricato e scompattato il file zip dall indirizzo basta mandare in esecuzione il file setup.exe e installare il prodotto nella cartella c:\mysql. Poi da prompt dei comandi bisogna digitare: C:\mysql\bin\mysqld -install Questo comando installerà MySQL come servizio di Windows che potrà essere gestito da Strumenti di amministrazione Servizi (assicurarsi che il servizio MySQL sia impostato su avvio automatico). MySQL non prevede alcun interfaccia grafica per la sua gestione, quindi qualsiasi operazione va eseguita da riga di comando. Si consiglia l utilizzo di tool grafici che velocizzano la gestione dei database. Ce ne sono tanti in circolazione, da quelli gratuiti a quelli commerciali. Tra quelli gratuiti si segnalano MySQL Control Center disponibile sul sito di e MySQL Front (gratuita solo la versione 2.5) disponibile sul sito In ogni caso il funzionamento di questi programmi è molto simile, per cui non faremo riferimento a nessuno in particolare, lasciando a voi la scelta. Gli esempi proposti saranno quindi generalizzati e utilizzabili sia da riga di comando, sia da tool grafici. Creazione del database Per le nostre prove abbiamo bisogno di creare un database. Ne progetteremo uno semplice con solo due tabelle: utenti dove andranno memorizzate le informazioni degli utenti, e una per la tipologia di utenti (insegnanti, alunni, genitori ecc.). Lo schema relazionale è il seguente: JSP Lezione 6 L accesso ai Database 2

3 Quindi dopo aver creato un nuovo database di nome registro_online, creiamo le tabelle e le popoliamo con dei record. Segue lo script SQL completo: CREATE TABLE tipo_utente ( idtipo char(3) NOT NULL default '0', tipoutente varchar(20) default NULL, PRIMARY KEY (idtipo) ) TYPE=MyISAM; INSERT INTO tipo_utente VALUES("INS", "Insegnante"); INSERT INTO tipo_utente VALUES("STU", "Studente"); INSERT INTO tipo_utente VALUES("GEN", "Genitore"); INSERT INTO tipo_utente VALUES("OSP", "Ospite"); INSERT INTO tipo_utente VALUES("ADM", "Amministratore"); CREATE TABLE utente ( UserID varchar(20) NOT NULL default '', password varchar(20) NOT NULL default '', cognome varchar(30) default NULL, nome varchar(30) default NULL, tipovia varchar(10) default NULL, Indirizzo varchar(40) default NULL, numcivico varchar(10) default NULL, cap varchar(5) default NULL, citta varchar(40) default NULL, prov char(2) default NULL, idtipo char(3) default NULL, varchar(35) default NULL, telefono varchar(15) default NULL, cellulare varchar(15) default NULL, PRIMARY KEY (UserID) ) TYPE=MyISAM; INSERT INTO utente VALUES("rossi", "segreta", "Rossi", "Giovanni", "Corso", "Carlo Alberto", "12", "23900", "Lecco", "LC", "INS", NULL, NULL); INSERT INTO utente VALUES("bianchi", "segreta", "Bianchi", "Michele", "Via", "Roma", "5", "23900", "Lecco", "LC", "STU", NULL, NULL); INSERT INTO utente VALUES("verdi", "segreta", "Verdi", "Giuseppe", "Piazza", "Roma", "12", "20100", "Milano", "MI", "STU", "211212", "121121"); Connettersi al database da pagine JSP Per poter utilizzare un database di MySQL da codice Java, abbiamo bisogno del driver JDBC chiamato Connector/J. È un driver gratuito disponibile all indirizzo Faremo riferimento alla versione , la versione per Windows è un file zippato contenente oltre che i file jar necessari, anche la documentazione e vari esempi. Per poter utilizzare il driver in una Web Application, dobbiamo copiare il file mysql-connectorjava production-bin.jar del pacchetto, nella cartella WEB-INF/lib della nostra applicazione. Ora possiamo cominciare a scrivere il codice necessario a connettersi al database appena creato. Come primo esempio realizzeremo una pagina di autenticazione utente in cui verranno richiesti la UserID e la password, i dati inseriti saranno confrontati con quelli presenti nella tabella utenti e a seconda dell esito della ricerca, l accesso dell utente verrà autorizzato o meno. Le operazioni da effettuare sono: JSP Lezione 6 L accesso ai Database 3

4 Recupero dei parametri UserID e password. String nome=request.getparameter("nome"); String pwd=request.getparameter("pwd"); Caricamento del driver per la connessione al database. Class.forName("com.mysql.jdbc.Driver"); Apertura connessione. I parametri necessari per questa operazione sono: o Nome del Server su cui risiede MySQL (nel nostro caso localhost). o Nome del database (registro_online). o Nome utente e password registrati sul server di MySQL. Inizialmente MySQL crea un utente di default di nome root e senza password. Si consiglia vivamente di cambiare queste impostazioni. Per questo esempio abbiamo inserito segreta come password per l utente root. Connection cn = DriverManager.getConnection ("jdbc:mysql://localhost/registro_online?user=root&password=segreta"); Creazione di un oggetto java.sql.statement necessario per poter effettuare delle query sul database: Statement stmt = cn.createstatement(); Una query di selezione può restituire dei record che devono essere recuperati da un oggetto di tipo java.sql.resultset (la funzione fc() serve per trattare le stringhe in Sql, vedi Lezione 3): String sql="select * FROM utente WHERE UserID=" + fc(nome) + " AND password=" + fc(pwd); ResultSet rs = stmt.executequery(sql); Per estrarre i dati dall oggetto ResultSet si utilizza il metodo next() che ha una duplice funzione: restituire true se l oggetto contiene dei record e scorre in avanti l elenco dei record. Quindi per visualizzare il contenuto completo, si utilizza la sintassi: while(rs.next()) { [...codice...] Nel nostro caso la query può restituire 0 o 1 record quindi useremo un controllo if al posto di while. Per leggere i dati: String cognome=rs.getstring("cognome"); o se non si conosce il nome del campo: String cognome=rs.getstring(int indice); Vediamo il codice completo del file esempio6_1.jsp in cui vengono richiesti la userid e la password: JSP Lezione 6 L accesso ai Database 4

5 page language="java" %> <html> <head> <title>accesso ad un Database MySQL</title> </head> <body> <h2>accesso a un database di MySQL</h2> <form method="post" action="login.jsp"> <fieldset> <legend>login utente</legend> <label for="nome">inserisci il nome: </label> <input type="text" name="nome" id="nome"> <label for="pwd">password: </label> <input type="password" name="pwd" id="pwd"> <input type="submit" value="login" name="invia"> </fieldset> </form> </body> </html> Infine il file login.jsp per la connessione al database e verifica utente. page language="java" import="java.sql.*" %> include file="/lezione3/include/funzioni.jsp" %> <html> <head><title>database</title></head> <body><h3>accesso Utenti registrati</h3> <% String nome=request.getparameter("nome"); String pwd=request.getparameter("pwd"); //caricamento driver Class.forName("com.mysql.jdbc.Driver"); //apertura connessione Connection cn = DriverManager.getConnection("jdbc:mysql://localhost/registro_online?user=root&p assword=segreta"); Statement stmt = cn.createstatement(); String sql="select * FROM utente WHERE UserID=" + fc(nome) + " AND password=" + fc(pwd); ResultSet rs = stmt.executequery(sql); if (rs.next()){ //visualizza dati utente out.write("cognome : "+rs.getstring("cognome")+""); out.write("nome : "+rs.getstring("nome")+""); out.write("indirizzo: "+rs.getstring("tipovia")+" "+rs.getstring("indirizzo")+" "+rs.getstring("numcivico")+""); out.write("indirizzo: "+rs.getstring("cap")+" "+rs.getstring("citta")+" "+rs.getstring("prov")+""); out.write(" "+nn(rs.getstring(" "))+""); out.write("telefono : "+nn(rs.getstring("telefono"))+""); out.write("cellulare: "+nn(rs.getstring("cellulare"))+""); else{ out.write("utente non trovato Ripetere la procedura di login"); stmt.close(); cn.close(); %> <a href="index.html" title="torna indietro">indietro</a> </body></html> JSP Lezione 6 L accesso ai Database 5

6 Al termine delle operazioni è indispensabile chiudere gli oggetti Statement e Connection per poter liberare le risorse(resultset viene automaticamente chiuso insieme all oggetto Statement). JSP e MS SQL Server 2000 Strumenti necessari Abbiamo visto, nella sezione precedente, come MySQL sia un prestante server di database ma con ridotte funzionalità. In grossi progetti può rendersi indispensabile l utilizzo di certe funzionalità tipiche di database relazionali di fascia alta (e purtroppo dal prezzo elevato). SQL Server 2000 è l ultimo prodotto di Microsoft progettato per gestire altissimi volumi di operazioni transazionali in ambienti multiutente e offre pieno supporto a trigger, vincoli di integrità referenziale, stored procedure, oltre che una notevole compatibilità con lo standard SQL92. Se non abbiamo a disposizione una licenza d uso di SQL Server, possiamo comunque creare e utilizzare dei database in formato SQL Server Come? Utilizzando MSDE (Microsoft SQL Server Desktop Engine) un motore ridotto del prodotto commerciale, limitato per numero di connessioni simultanee (massimo 5) e per grandezza di database gestibili (massimo 2 GB), inoltre mancano tutti i tool di gestione come Enterpise Manager, Query Analyzer, Profiler ed altri. MSDE è messo a disposizione con Office Professional (2000, XP o 2003) e con Visual Studio.NET oltre che liberamente scaricabile dal sito Microsoft. In questa lezione vedremo come installare MSDE. Dopo aver scaricato il pacchetto compresso autoestraente SQL2KDeskSP3.exe, scompattarlo nella directory c:\ sql2ksp3. Ora si procederà con l installazione di MSDE impostando come modalità di autenticazione quella di SQL Server e non quella integrata di Windows, l utente sarà quello di default sa con password segreta e nome dell istanza del server sqltest. Aprire il file C:\sql2ksp3\MSDE\setup.ini e modificarlo con i seguenti parametri: [Options] SAPWD="segreta" SECURITYMODE=SQL INSTANCENAME="SQLTEST" Andare da prompt dei comandi nella cartella C:\sql2ksp3\MSDE\ e impostare il comando: setup /settings C:\sql2ksp3\MSDE\setup.ini partirà l installazione di SQL Server Desktop Engine con i parametri memorizzati nel file setup.ini. Terminata l installazione, è preferibile riavviare il sistema, il servizio di SQL Server partirà automaticamente in background. Non avendo a disposizione Enterprise Manager per gestire il Server SQL, utilizzeremo Access, quindi creiamo un nuovo progetto vuoto che chiameremo registro.adp. Partirà una creazione guidata dove andremo ad inserire i seguenti valori (password=segreta e al posto di DEVMOBILE il nome del vostro computer): JSP Lezione 6 L accesso ai Database 6

7 Ora possiamo creare le tabelle come se stessimo lavorando con un database di Access, aggiungiamo quindi gli stessi dati del database di MySQL. Prima di poter utilizzare il database da codice Java, abbiamo bisogno dei driver JDBC per SQL Server, è un file.exe che troviamo sul sito Microsoft e contiene sia i file jar che la documentazione. JSP Lezione 6 L accesso ai Database 7

8 Dopo averli installati copiamo i seguenti file nella directory WEB-INF\lib della nostra Web Application: msbase.jar mssqlserver.jar msutil.jar Ora è tutto pronto, possiamo scrivere il codice Java di connessione a SQL Server. Ripeteremo le stesse operazioni mostrate nell esempio 6.1, le uniche modifiche da apportare al codice saranno il caricamento del driver: Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); e i parametri di connessione al database: Connection cn = DriverManager.getConnection ("jdbc:microsoft:sqlserver://localhost:1433;databasename=registro_online;user=sa ;password=segreta"); e poi grazie a JDBC possiamo lasciare invariato il resto del codice e il tutto funzionerà perfettamente. Le API java.sql È il package che fornisce le interfacce e le classi utili per la gestione dei data source. Sebbene le JDBC API siano utilizzate maggiormente per leggere e scrivere dati da database relazionali, esse forniscono i metodi per accedere a qualsiasi origine dati in formato tabulare. Abbiamo già visto come creare un oggetto Connection che serve per instaurare la connessione fisica al DBMS a seconda al driver caricato. L interfaccia Statement Qualsiasi comando dovrà essere eseguito tramite l interfaccia Statement che prevede due metodi principali (in realtà ne mette a disposizione tanti, consultare le API doc di J2SE per un elenco completo): executequery(): permette di effettuare delle operazione di selezione (SELECT) e restituisce un oggetto ResultSet che permette di scorrere i risultati ottenuti. executeupdate(): permette di effettuare delle operazioni di inserimento (INSERT), aggiornamento (UPDATE), o di modifica della struttura del database (CREATE TABLE, CREATE INDEX e così via). Questo metodo restituisce un intero che rappresenta il numero dei record modificati. L interfaccia ResultSet È l interfaccia contenente i record restituiti da una query di selezione. Può essere vista come una tabella temporanea residente in memoria che avrà un cursore che, inizialmente, sarà posizionato antecedentemente al primo record restituito. Il metodo next() scorre in avanti il cursore e inoltre restituisce true se il cursore punta ad un record, false se non punta a nessun record. Per prelevare i valori di un campo possiamo utilizzare il metodo: gettipo(string nomecampo) o gettipo(int indicecolonna) JSP Lezione 6 L accesso ai Database 8

9 dove Tipo è il tipo di dati restituito tra quelli base (String, Boolean, Byte, Date, Int, Float e molti altri) e indicecolonna è il numero della colonna desiderata (1 per la prima colonna). L interfaccia PreparedStatement Estende l interfaccia Statement, e rappresenta una query precompilata. Incrementa le prestazioni se una stessa query deve essere eseguita più volte nella stessa pagina e permette inoltre una maggiore leggibilità del codice. La stringa SQL va passata al momento della creazione dell oggetto: PreparedStatement stmt = cn.preparestatement(sql); È possibile parametrizzare i criteri di selezione di una query: SELECT * FROM tabella WHERE userid=? AND password=? E poi passare i parametri con: stmt.setstring(1,nome); stmt.setstring(2,pwd); Vediamo l esempio completo con la pagina login_ps.jsp: page language="java" import="java.sql.*" %> include file="/lezione3/include/funzioni.jsp" %> <html> <head><title>database</title></head> <body> <h3>accesso Utenti registrati</h3> <%String nome=request.getparameter("nome"); String pwd=request.getparameter("pwd"); PreparedStatement stmt = null; ResultSet rs = null; //caricamento driver Class.forName("com.mysql.jdbc.Driver"); //apertura connessione Connection cn = DriverManager.getConnection("jdbc:mysql://localhost/registro_online?user=root&p assword=segreta"); String sql="select Cognome, Nome, Tipovia, Indirizzo, NumCivico, cap, citta, prov, tipo_utente.tipoutente, , telefono "; sql+=" FROM utente INNER JOIN tipo_utente ON utente.idtipo=tipo_utente.idtipo"; sql+=" WHERE UserID=? AND password=?"; stmt = cn.preparestatement(sql); stmt.setstring(1,nome); stmt.setstring(2,pwd); rs = stmt.executequery(); if (rs.next()){ //visualizza dati utente out.write("cognome : "+rs.getstring("cognome")+""); out.write("nome : "+rs.getstring("nome")+""); out.write("indirizzo: "+rs.getstring("tipovia")+" "+rs.getstring("indirizzo")+" "+rs.getstring("numcivico")+""); out.write("indirizzo: "+rs.getstring("cap")+" "+rs.getstring("citta")+" "+rs.getstring("prov")+""); out.write(" "+nn(rs.getstring(" "))+""); out.write("telefono : "+nn(rs.getstring("telefono"))+""); out.write("tipo Utente: "+nn(rs.getstring("tipoutente"))+""); else{ JSP Lezione 6 L accesso ai Database 9

10 // utente non trovato out.write("utente non trovato Ripetere la procedura di login"); stmt.close(); cn.close(); %> <a href="index.html" title="torna indietro">indietro</a> </body> </html> Modifica dati Vediamo ora come utilizzare l interfaccia PreparedStatement per la modifica dei dati. Il codice completo della pagina esempio6_4.jsp che permette di modificare i dati della tabella utenti: page language="java" %> page import="java.sql.*" %> include file="/lezione3/include/funzioni.jsp" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it"> <head> <title>modifica dati</title> <meta http-equiv="content-type" content="text/html; charset=iso " /> </head> <body> <h2>accesso a un database di MySQL</h2> <h3>utilizzo della classe PreparedStatement</h3> <form method="post"> <fieldset> <legend>inserimento dati nuovo utente</legend> <label for="userid">user ID: </label> <input type="text" name="userid" id="userid"> <label for="password">password: </label> <input type="password" name="password" id="password"> <label for="cognome">cognome: </label> <input type="text" name="cognome" id="cognome"> <label for="nome">nome: </label> <input type="text" name="nome" id="nome"> <label for="tipovia">tipo Via: </label> <input type="text" name="tipovia" id="tipovia"> <label for="indirizzo">indirizzo: </label> <input type="text" name="indirizzo" id="indirizzo"> <label for="numcivico">n Civico: </label> <input type="text" name="numcivico" id="numcivico"> <label for="cap">cap: </label> <input type="text" name="cap" id="cap"> <label for="citta">città: </label> <input type="text" name="citta" id="citta"> JSP Lezione 6 L accesso ai Database 10

11 <label for="prov">provincia: </label> <input type="text" name="prov" id="prov"> <label for="idtipo">tipo Utente: </label> <select name="idtipo"> <option value="stu">studente</option> <option value="ins">insegnante</option> <option value="gen">genitore</option> <option value="adm">amministratore</option> </select> <label for=" "> </label> <input type="text" name=" " id=" "> <label for="telefono">telefono: </label> <input type="text" name="telefono" id="telefono"> <label for="cellulare">cellulare: </label> <input type="text" name="cellulare" id="cellulare"> <input type="submit" value="invia" name="invia"> </fieldset> </form> <% if (request.getparameter("invia")!=null){ String sql; String userid=request.getparameter("userid"); //apertura connessione Class.forName("com.mysql.jdbc.Driver"); Connection cn = DriverManager.getConnection("jdbc:mysql://localhost/registro_online?user=root&p assword=segreta"); //verifica che non ci sia un altro id user sql="select userid FROM utente WHERE userid=" + fc(userid); Statement stmt=cn.createstatement(); ResultSet rs=stmt.executequery(sql); if (rs.next()){ // userid esistente (deve essere univoco) out.write("userid esistente. Immettere un codice identificativo diverso"); else{ //inserisce i dati sql="insert INTO utente (userid,password,cognome,nome,tipovia,indirizzo,numcivico,cap,citta,prov,idtipo, ,telefono,cellulare) "; sql+=" VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; PreparedStatement stmtins = cn.preparestatement(sql); stmtins.setstring(1,userid); stmtins.setstring(2,request.getparameter("password")); stmtins.setstring(3,request.getparameter("cognome")); stmtins.setstring(4,request.getparameter("nome")); stmtins.setstring(5,request.getparameter("tipovia")); stmtins.setstring(6,request.getparameter("indirizzo")); stmtins.setstring(7,request.getparameter("numcivico")); stmtins.setstring(8,request.getparameter("cap")); stmtins.setstring(9,request.getparameter("citta")); stmtins.setstring(10,request.getparameter("prov")); stmtins.setstring(11,request.getparameter("idtipo")); JSP Lezione 6 L accesso ai Database 11

12 %> </body> </html> rs.close(); cn.close(); stmtins.setstring(11,request.getparameter("idtipo")); stmtins.setstring(12,request.getparameter(" ")); stmtins.setstring(13,request.getparameter("telefono")); stmtins.setstring(14,request.getparameter("cellulare")); stmtins.executeupdate(); out.write("inserimento eseguito con successo"); L interfaccia CallableStatement L interfaccia PreparedStatement oltre che rendere più leggibile il codice, migliora le prestazioni solo se la stessa query viene eseguita più volte nella pagina, mentre tutte le nuove richieste comportano la creazione di un nuovo oggetto PreparedStatement, e ciò non produce alcun miglioramento. Esiste un altro metodo per migliorare le prestazioni: la compilazione di una query a livello di DBMS. Questa tecnica è possibile solo con i database che supportano le stored procedure, ovvero delle query memorizzate e precompilate direttamente dal Database Server. I vantaggi di questa tecnica sono notevoli, qualsiasi chiamata alla procedura SQL sarà eseguita molto più velocemente di una query normale, lo svantaggio è che occupano più spazio e quindi è preferibile usarle solo in caso di selezioni frequenti. In Java è possibile gestire queste funzioni con l interfaccia CallableStatement che eredita da PreparedStatement. MySQL non gestisce le stored procedure quindi faremo un esempio con SQL Server Creiamo una stored procedure di nome autenticazione e si occuperà di verificare l esistenza di un utente nel database. I parametri che accetterà sono la UserID e la password: Create Procedure varchar(20) AS SELECT Cognome, Nome, Tipovia, Indirizzo, NumCivico, cap, citta, prov, tipo_utente.tipoutente, , telefono FROM utente INNER JOIN tipo_utente ON utente.idtipo=tipo_utente.idtipo WHERE AND GO E ora vediamo l esempio 6.5 che ci mostra come richiamare una Stored Procedure usando l interfaccia CallableStatement. page language="java" import="java.sql.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it"> <head> <title>utilizzo di Stored Procedure</title> <meta http-equiv="content-type" content="text/html; charset=iso " /> </head> <body> <h2>utilizzo di Stored Procedure</h2> JSP Lezione 6 L accesso ai Database 12

13 <form method="post" > <fieldset> <legend>login utente</legend> <label for="nome">inserisci il nome: </label> <input type="text" name="nome" id="nome"> <label for="pwd">password: </label> <input type="password" name="pwd" id="pwd"> <input type="submit" value="login" name="invia"> </fieldset> </form> <% if (request.getparameter("invia")!=null){ String nome=request.getparameter("nome"); String pwd=request.getparameter("pwd"); CallableStatement stmt = null; ResultSet rs = null; //caricamento driver Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //apertura connessione Connection cn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;Database Name=registro_online;user=sa;password=segreta"); stmt = cn.preparecall("{call autenticazione(?,?)"); stmt.setstring(1,nome); stmt.setstring(2,pwd); rs = stmt.executequery(); if (rs.next()){ //visualizza dati utente out.write("cognome : "+rs.getstring("cognome")+""); out.write("nome : "+rs.getstring("nome")+""); out.write("indirizzo: "+rs.getstring("tipovia")+" "+rs.getstring("indirizzo")+" "+rs.getstring("numcivico")+""); out.write("indirizzo: "+rs.getstring("cap")+" "+rs.getstring("citta")+" "+rs.getstring("prov")+""); out.write(" "+rs.getstring(" ")+""); out.write("telefono : "+rs.getstring("telefono")+""); out.write("tipo Utente: "+rs.getstring("tipoutente")+""); else{ // utente non trovato out.write("utente non trovato Ripetere la procedura di login"); stmt.close(); cn.close(); %> </body> </html> JSP Lezione 6 L accesso ai Database 13

Le JavaServer Pages - Lezione 7 I JavaBean

Le JavaServer Pages - Lezione 7 I JavaBean Le JavaServer Pages - Lezione 7 I JavaBean A cura di Giuseppe De Pietro (depietro_giuseppe@yahoo.it) Contenuti Nelle lezioni precedenti abbiamo visto gli elementi principali delle Java Server Pages, come

Dettagli

JDBC versione base. Le classi/interfacce principali di JDBC

JDBC versione base. Le classi/interfacce principali di JDBC JDBC versione base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte uno dei pregi è la completa indipendenza del codice

Dettagli

JDBC di base. Le classi/interfacce principali di JDBC

JDBC di base. Le classi/interfacce principali di JDBC JDBC di base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte completa indipendenza del codice dal tipo di database o di

Dettagli

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC JDBC: Introduzione Java Database Connectivity (JDBC): parte 1 Gianluca Moro DEIS - Università di Bologna gmoro@deis.unibo.it Java Database Connectivity è il package Java per l accesso a database relazionali

Dettagli

Laboratorio di reti II: Gestione di database lato server

Laboratorio di reti II: Gestione di database lato server Laboratorio di reti II: Gestione di database lato server Stefano Brocchi brocchi@dsi.unifi.it 23 marzo, 2009 Stefano Brocchi Laboratorio di reti II: Database 23 marzo, 2009 1 / 32 Uso di database lato

Dettagli

Esercitazione su JDBC

Esercitazione su JDBC Esercitazione su JDBC Basi di Dati L Ingegneria dei Processi Gestionali (Ilaria Bartolini - Roberto Cabras) come usare SQL (1) Le istruzioni SQL possono essere eseguite interattivamente Ese JDBC 2 come

Dettagli

JDBC. A. Bechini 2004. Accesso a DataD con Java

JDBC. A. Bechini 2004. Accesso a DataD con Java JDBC Accesso a DataD atabase ase con Java Utilizzo di DB da applicazioni esterne Un DB contiene e gestisce dati, importanti per varie operazioni supportate da applicazioni software Come può un applicazione

Dettagli

JDBC per l accesso Java a DB. Tito Flagella tito@link.it

JDBC per l accesso Java a DB. Tito Flagella tito@link.it JDBC per l accesso Java a DB Tito Flagella tito@link.it JDBC fornisce una libreria standard per l accesso a database relazionali Non è un acronimo ufficiale ma è comunemente interpretato come Java DataBase

Dettagli

JDBC. Dispense per il corso di Ingegneria del Web

JDBC. Dispense per il corso di Ingegneria del Web JDBC Dispense per il corso di Ingegneria del Web Revisione 05/11 Giuseppe Della Penna (giuseppe.dellapenna@di.univaq.it) Dipartimento di Informatica Università degli studi dell'aquila Java Database Connectivity:

Dettagli

Introduzione. 8- Programmazione di una base di dati attraverso JDBC ESEMPIO

Introduzione. 8- Programmazione di una base di dati attraverso JDBC ESEMPIO 8- Programmazione di una base di dati attraverso JDBC Introduzione ai differenti approcci - JDBC: Architettura e Programmazione Introduzione Nella pratica gli utenti finali accedono al contenuto di una

Dettagli

Lavorare con MySQL Parte Prima.

Lavorare con MySQL Parte Prima. Lavorare con MySQL Parte Prima. Data la particolarità dell argomento, ho deciso di dividerlo in due lezioni. Nella prima, si parlerà diffusamente di MySQL, cos è un DBMS, cos è l SQL, i campi supportati

Dettagli

Introduzione JDBC interfaccia java.sql driver caricare i driver

Introduzione JDBC interfaccia java.sql driver caricare i driver J D B C DISPENSE Introduzione JDBC (Java Database Connectivity) è un interfaccia completamente Java utilizzata per eseguire istruzioni SQL sui database. L'API JDBC si trova nel pacchetto java.sql; contiene

Dettagli

Laboratorio di sistemi SELECT e checkbox Jsp [Java]

Laboratorio di sistemi SELECT e checkbox Jsp [Java] Fig. 1 - Vogliamo visualizzare book_id, autore e titolo dalla tabella books del database shop Fig. 2 - Tabella books select_checkbox.pdf Pag. 1/5 Cozzetto Fig. 3 - Abbiamo due record in output File index_1.jsp

Dettagli

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013 Laboratorio Progettazione Web PHP e MySQL - Lezione 9 Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013 Architettura di una applicazione Web Browser Web HTTP Server Web API Dati Presentation

Dettagli

Laboratorio di Sistemi Fondamenti di JDBC (parte1) Java. Fondamenti di JDBC

Laboratorio di Sistemi Fondamenti di JDBC (parte1) Java. Fondamenti di JDBC Fondamenti di JDBC Concetto di driver Il dialogo fra applicazione e DBMS non è mai gestito direttamente ma passa in genere per un opportuno modulo software chiamato driver che agisce da interfaccia fra

Dettagli

Non si deve fare ALCUN riferimento alla parte specifica di JDBC.

Non si deve fare ALCUN riferimento alla parte specifica di JDBC. Un applicazione per la quale sia fondamentale l indipendenza dal Database può essere scritta in Java usando le specifiche. (Package java.sql) Non devono essere usate chiamate specifiche del database: Si

Dettagli

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2013/2014

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2013/2014 Laboratorio Progettazione Web PHP e MySQL Andrea Marchetti IIT-CNR 2013/2014 Architettura di una applicazione Web Browser Web HTTP Server Web API Dati Presentation Application Storage PHP e DataBase Quando

Dettagli

Laboratorio di Sistemi Autenticazione utente mediante MySQL Jsp [Java]

Laboratorio di Sistemi Autenticazione utente mediante MySQL Jsp [Java] Per la comprensione del presente articolo, occorre aver assimilato i concetti esposti nell'articolo Prototipo autenticazione utente (file autenticazione_2.pdf). (Tratto da Wikipedia, l'enciclopedia libera)

Dettagli

APPUNTI DI PHP : V INFORMATICA SEZIONE G

APPUNTI DI PHP : V INFORMATICA SEZIONE G APPUNTI DI PHP : V INFORMATICA SEZIONE G Prof. Conti R. mysql_connect() Apre una connessione verso un DB MySQL. $db = mysql_connect([$db_host[, $db_username[, $db_password[, $newlink[,$clientflags]]]]]);

Dettagli

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012 Laboratorio Progettazione Web PHP e MySQL - Lezione 9 Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012 Architettura di una applicazione Web Browser Web HTTP Server Web PHP Dati View Control

Dettagli

JDBC: Java e database.

JDBC: Java e database. JDBC: Java e database. Introduzione all architettura e esempi di utilizzo 1.0 INTRODUZIONE ALL ARCHITETTURA JDBC è (anche se non ufficialmente riconosciuto da Sun) l acronimo per Java DataBase Connectivity.

Dettagli

Tool. Basi di Dati e Sistemi Informativi Prof. Marco Di Felice Dott.sa Sara Zuppiroli A.A. 2012-2013

Tool. Basi di Dati e Sistemi Informativi Prof. Marco Di Felice Dott.sa Sara Zuppiroli A.A. 2012-2013 Tool Basi di Dati e Sistemi Informativi Prof. Marco Di Felice Dott.sa Sara Zuppiroli A.A. 2012-2013 Basi di Dati e Sistemi Informativi () PostgreSQL A.A. 2012-2013 1 / 26 Gli strumenti che vedremo Basi

Dettagli

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012 + Sviluppo Applicazioni Mobile Lezione 12 JDBC + Cosa vediamo nella lezione di oggi Oggi analizzeremo insieme una specifica tecnologia Java per l accesso e la manipolazione di basi di dati relazionali

Dettagli

Esercitazione 8. Basi di dati e web

Esercitazione 8. Basi di dati e web Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso

Dettagli

L interfaccia a riga di comando di MySql

L interfaccia a riga di comando di MySql L interfaccia a riga di comando di MySql Una volta completata la procedura di installazione possiamo finalmente testare le funzionalità di MySQL. Sia che ci si trovi in ambiente Linux che Windows, l'interfaccia

Dettagli

JDBC Driver Manager. JDBC Architettura generale. JDBC - Tipi di dato. JDBC - Flusso applicativo. JDBC - Tipi di dato. ODBC Driver. Livello di gestione

JDBC Driver Manager. JDBC Architettura generale. JDBC - Tipi di dato. JDBC - Flusso applicativo. JDBC - Tipi di dato. ODBC Driver. Livello di gestione Interfacce DBMS in breve Corso di BD1 Ripasso comandi applicazione JDBC Manipolazione estensioni OR in JDBC Interfacce per DBMS Problema: Far accedere un applicazione ad una base di dati Soluzione: Librerie

Dettagli

A. Veneziani - Classe V Abacus - Elementi di elaborazione Web con supporto ai DB basati su ASP e Access

A. Veneziani - Classe V Abacus - Elementi di elaborazione Web con supporto ai DB basati su ASP e Access A. Veneziani - Classe V Abacus - Elementi di elaborazione Web con supporto ai DB basati su ASP e Access Prologo Parlando di tecnologie Web legate a Microsoft è naturale integrare le funzioni di ASP 1 con

Dettagli

Applicazione ASP di esempio

Applicazione ASP di esempio Applicazione ASP di esempio Database in rete Prof. Claudio Maccherani Un server web è un programma che gira su un computer sempre collegato ad Internet e che mette a disposizione file, pagine e servizi.

Dettagli

Lezione 9. Applicazioni tradizionali

Lezione 9. Applicazioni tradizionali Lezione 9 Applicazioni tradizionali Pag.1 Sommario Concetti trattati in questa lezione: SQL nel codice applicativo Cursori API native ODBC Pag.2 SQL nel codice applicativo I comandi SQL possono essere

Dettagli

SQL e applicazioni. Capitolo 8. SQL e linguaggi di programmazione. Applicazioni ed SQL: architettura. Una difficoltà importante.

SQL e applicazioni. Capitolo 8. SQL e linguaggi di programmazione. Applicazioni ed SQL: architettura. Una difficoltà importante. SQL e applicazioni Capitolo 8 Applicazioni tradizionali In applicazioni complesse, l utente non vuole eseguire comandi SQL, ma programmi, con poche scelte SQL non basta, sono necessarie altre funzionalità,

Dettagli

19.1 - Lavorare con JDBC L'impiego di JDBC è semplice, e solitamente si articola attraverso quattro passi:

19.1 - Lavorare con JDBC L'impiego di JDBC è semplice, e solitamente si articola attraverso quattro passi: Lezione 19 Accesso ai database con JDBC JDBC (non è una sigla, secondo quanto sostenuto da Sun, anche se molti la interpretano come Java DataBase Connectivity) è un'interfaccia di programmazione che lavora

Dettagli

APPENDICE B Le Active Server Page

APPENDICE B Le Active Server Page APPENDICE B Le Active Server Page B.1 Introduzione ad ASP La programmazione web è nata con la Common Gateway Interface. L interfaccia CGI tuttavia presenta dei limiti: ad esempio anche per semplici elaborazioni

Dettagli

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari Gubiani & Montanari Il DBMS Oracle 1 Il DBMS Oracle Express Edition Donatella Gubiani e Angelo Montanari Il DBMS Oracle Il DBMS Oracle Oracle 10g Express Edition Il DBMS Oracle (nelle sue versioni più

Dettagli

PROVA FINALE Ingegneria del software

PROVA FINALE Ingegneria del software PROVA FINALE Ingegneria del software Ing. Jody Marca jody.marca@polimi.it Laboratorio N 4 Cos è JDBC 2 JDBC significa Java Database Connectivity Standard definito da Sun MicroSystems per connettere programmi

Dettagli

Scheda 15 Accedere ai DataBase con JDBC

Scheda 15 Accedere ai DataBase con JDBC Scheda 15 Accedere ai DataBase con JDBC G IOVANNI PULITI Panoramica: che cosa è JDBC La API JDBC, introdotta per la prima volta con il JDK 1.0, è una API che permette di accedere a database relazionali

Dettagli

PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN

PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN Il metodo migliore per creare nuovi DB è quello di usare l interfaccia del PHPMYADMIN (che viene installata automaticamente con il pacchetto easy

Dettagli

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database Corso di Informatica Modulo T3 B3 Programmazione lato server 1 Prerequisiti Architettura client/server Conoscenze generali sui database 2 1 Introduzione Lo scopo di questa Unità è descrivere gli strumenti

Dettagli

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Data Base. Master Bio Info Reti e Basi di Dati Lezione 6 Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica

Dettagli

DBMS ed Applicazioni Motivazioni

DBMS ed Applicazioni Motivazioni DBMS ed Applicazioni Motivazioni Sin ora abbiamo visto SQL come linguaggio per interrogare DBMS da interfaccia interattiva Nella pratica, un efficace sfruttamento delle potenzialità dei DBMS deriva dalla

Dettagli

Java: la libreria delle classi

Java: la libreria delle classi Java: la libreria delle classi Applet anatomia di un applet cenni di html La libreria JDBC per l accesso ai database il package java.sql 213 Applet Un applet è una applicazione Java che ha una forma particolare

Dettagli

PHP Survival Kit (Ovvero gestire un database MySQL tramite PHP)

PHP Survival Kit (Ovvero gestire un database MySQL tramite PHP) PHP Survival Kit (Ovvero gestire un database MySQL tramite PHP) Augusto Scatolini (webmaster@comunecampagnano.it) (a.scatolini@linux4campagnano.net) Miniguida n. 183 Ver. 1.0 aprile 2013 La prima guida

Dettagli

FileMaker 12. Guida ODBC e JDBC

FileMaker 12. Guida ODBC e JDBC FileMaker 12 Guida ODBC e JDBC 2004 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker, Inc.

Dettagli

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet 1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet Controllo dell utente connesso al sito tramite JSP, Java Beans e Servlet. Ciò che ci proponiamo di fare è l accesso

Dettagli

MDAC. Attualmente la versione disponibile di MDAC è la 2.8 ma faremo riferimento alla 2.6. ADO Active Data Objects ADO OLE DB ODBC

MDAC. Attualmente la versione disponibile di MDAC è la 2.8 ma faremo riferimento alla 2.6. ADO Active Data Objects ADO OLE DB ODBC MDAC MDAC è l acronimo di Microsoft Data Access Component e fa parte della tecnologia Microsoft denominata Universal Data Access (UDA). Mette a disposizione una serie di componenti per l accesso a svariate

Dettagli

Indice. Java. JDBC è l interfaccia di base standard di Java ai database relaionali

Indice. Java. JDBC è l interfaccia di base standard di Java ai database relaionali Java java database connectivity -- jdbc G. Prencipe prencipe@di.unipi.it Indice JDBC: Java Data Base Connectivity connessioni a basi di dati esecuzione di statement SQL accesso ai result set JDBC: Java

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

Dettagli

Metodi per la Gestione dei Dati (lezioni di laboratorio)

Metodi per la Gestione dei Dati (lezioni di laboratorio) Università degli Studi di Modena e Reggio Emilia Facoltà di Scienze della Comunicazione e dell Economia Corso di Laurea in Comunicazione e Marketing Titolare del corso: ing. Stefano SETTI Lezioni di laboratorio

Dettagli

Pagine Asp. Pagine Asp

Pagine Asp. Pagine Asp Pagine Asp Architettura web Esistono alcune limitazioni alle applicazioni che si possono realizzare in HTML, ad esempio non è possibile costruire un sito web che consenta all utente di accedere ai dati

Dettagli

Corso di Informatica Modulo T3 B2 - Database in rete

Corso di Informatica Modulo T3 B2 - Database in rete Corso di Informatica Modulo T3 B2 - Database in rete 1 Prerequisiti Programmazione web Applicazione web Modello OSI Architettura client/server Conoscenze generali sui database Tecnologia ADO in Visual

Dettagli

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database PHP ed i database PHP 5 Accesso a database PHP funziona con molti database relazionale che includono: Oracle Access Postgres SQL Server MySQL Useremo MySQL poiché è semplice da usare, gratuito e molto

Dettagli

Accesso Web a Data Base

Accesso Web a Data Base Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Accesso Web a Data Base Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei -

Dettagli

Laboratorio di Basi di Dati e Multimedia

Laboratorio di Basi di Dati e Multimedia Laboratorio di Basi di Dati e Multimedia Laurea in Tecnologie dell Informazione: Multimedia Docente: Alessandra Di Pierro Email: dipierro@sci.univr.it Lezione 7 Java DataBase Connectivity JDBC consente

Dettagli

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2014/2015 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2014-15.htm Dott.ssa Francesca A. Lisi dott.ssa Francesca A.

Dettagli

2. Costruire un database con Apache, PHP e MySql

2. Costruire un database con Apache, PHP e MySql 2. Costruire un database con Apache, PHP e MySql Lo scopo di questa esercitazione è realizzare un server web e costruire un database accessibile attraverso Internet utilizzando il server Apache, il linguaggio

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 10 Raffaella Gentilini 1 / 46 Sommario 1 Introduzione: DB e Programmazione 2 3 2 / 46 Approcci alla Programmazione di un DB Meccanismi Disponibili 1 Linguaggi

Dettagli

PHP e MySQL. Scripting server-side per accesso a DB MySQL

PHP e MySQL. Scripting server-side per accesso a DB MySQL PHP e MySQL Scripting server-side per accesso a DB MySQL Connessione a un DB MySQL Prima di accedere ai dati è necessario creare una connessione con il DB In PHP si utilizza la funzione mysql_connect,

Dettagli

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query Costruzione di Sit Web con PHP e MySQL Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query Esercitazione In questa lezione si farà insieme una seconda esercitazione che

Dettagli

Guida a PHP. Primi esempi

Guida a PHP. Primi esempi Guida a PHP Php è un modulo aggiuntivo per web server che permette di creare delle pagine web dinamiche. Una pagina in Php è composta sia da tag html, sia da parti in codice di programmazione Php. Ogni

Dettagli

Accesso a Database con JDBC

Accesso a Database con JDBC 1 Sommario Accesso a Database con JDBC Introduzione architettura generale di riferimento flusso tipico delle applicazioni ODBC/JDBC ODBC architettura il flusso generale di un applicazione ODBC JDBC architettura

Dettagli

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.b Interazione con un database (MySQL Server)

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.b Interazione con un database (MySQL Server) MODULO 1 PARTE 3 Programmazione (scripting) server-side con PHP 3.b Interazione con un database (MySQL Server) Goy - a.a. 2009/2010 Programmazione Web 1 Informazione persistente Se vogliamo tener traccia

Dettagli

MySQL Database Management System

MySQL Database Management System MySQL Database Management System http://www.mysql.com/ DATABASE RELAZIONALI Un database è una collezione strutturata di informazioni. I database sono delle strutture nelle quali è possibile memorizzare

Dettagli

GRUPPO DOMANDE N. 1. Quesito n. 1 Descrivere sinteticamente le finalità e le modalità d uso dei seguenti comandi UNIX / LINUX: LS, KILL, PS.

GRUPPO DOMANDE N. 1. Quesito n. 1 Descrivere sinteticamente le finalità e le modalità d uso dei seguenti comandi UNIX / LINUX: LS, KILL, PS. GRUPPO DOMANDE N. 1 Quesito n. 1 Descrivere sinteticamente le finalità e le modalità d uso dei seguenti comandi UNIX / LINUX: LS, KILL, PS. Quesito n. 2 Descrivere sinteticamente le finalità d impiego

Dettagli

SOLUZIONE SECONDA PROVA INFORMATICA ITC ESAME DI STATO 2002/2003 TRAMONTANA

SOLUZIONE SECONDA PROVA INFORMATICA ITC ESAME DI STATO 2002/2003 TRAMONTANA Esame di Stato Istituto Tecnico Commerciale CORSO SPERIMENTALE Progetto "MERCURIO" Indirizzo: PROGRAMMATORI Soluzione della Seconda Prova - Tema di: INFORMATICA Anno Scolastico: 2002-2003 Riflessioni e

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

Nozioni di base sull utilizzo di PHP e di MySQL

Nozioni di base sull utilizzo di PHP e di MySQL Nozioni di base sull utilizzo di PHP e di MySQL Che cos è PHP? Mi sento in dovere prima di iniziare ad illustrare le nozioni di base di PHP introdurre dicendo PHP che cos è in sostanza; fino a qualche

Dettagli

Come trattare il risultato di un comando SQL (relazioni) che

Come trattare il risultato di un comando SQL (relazioni) che USO DI SQL DA PROGRAMMI: PROBLEMI 1 Come collegarsi alla BD Come trattare gli operatori SQL Come trattare il risultato di un comando SQL (relazioni) che Come scambiare informazioni sull esito delle operazioni.

Dettagli

La tecnologia ASP.NET e i database

La tecnologia ASP.NET e i database Introduzione alle pagine dinamiche Con il linguaggio HTML si possono creare delle pagine Web statiche. Se invece volessimo creare delle pagine Web dinamiche, pagine il cui codice html viene generato al

Dettagli

Architettura a tre livelli (1)

Architettura a tre livelli (1) Elaborazione Automatica dei Dati Php e MySQL Enrico Cavalli Anno Accademico 2012-2013 Architettura a tre livelli (1) Le applicazioni sono sviluppate secondo una architettura a tre livelli, affermatasi

Dettagli

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER Caratteristiche generali del linguaggio SQL Il linguaggio SQL è il linguaggio usato per la gestione dei database relazionali, cioè dei database creati con un DBMS di tipo relazionale. Esso nacque nella

Dettagli

Capitoli 8 e 9. SQL embedded. Applicazioni tradizionali Applicazioni Internet. Sistemi di basi di dati Raghu Ramakrishnan, Johannes Gehrke

Capitoli 8 e 9. SQL embedded. Applicazioni tradizionali Applicazioni Internet. Sistemi di basi di dati Raghu Ramakrishnan, Johannes Gehrke Capitoli 8 e 9 Applicazioni tradizionali Applicazioni Internet SQL embedded SQL nel codice applicativo I comandi SQL possono essere chiamati dall interno di un programma in un linguaggio ospite (ad esempio

Dettagli

Concetti fondamentali dei database database Cos'è un database Principali database

Concetti fondamentali dei database database Cos'è un database Principali database Concetti fondamentali dei database Nella vita di tutti i giorni si ha la necessità di gestire e manipolare dati. Le operazioni possono essere molteplici: ricerca, aggregazione con altri e riorganizzazione

Dettagli

BASI DI DATI http://www.diee.unica.it/~giacinto/bd. Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL

BASI DI DATI http://www.diee.unica.it/~giacinto/bd. Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Contatti BASI DI DATI http://www.diee.unica.it/~giacinto/bd Esercitazione su PHP & MySQL! Roberto Tronci! e-mail: roberto.tronci@diee.unica.it!

Dettagli

PHP 5. Accesso a database

PHP 5. Accesso a database PHP 5 Accesso a database PHP ed i database PHP funziona con molti database relazionali che includono: Oracle Access Postgres SQL Server MySQL Useremo MySQL poiché è semplice da usare, gratuito e molto

Dettagli

User Tools: DataBase Manager

User Tools: DataBase Manager Spazio di lavoro Per usare T-SQL Assistant selezionare il link Simple Query e spostare a piacere la piccola finestra dove un menu a tendina mostra i diversi comandi SQL selezionabili, il pulsante Preview

Dettagli

Basi di Dati Esercitazione JDBC. Giugno 2007

Basi di Dati Esercitazione JDBC. Giugno 2007 Basi di Dati Esercitazione JDBC Giugno 2007 Esercizi Considerando il seguente schema: Fornitori (CodiceFornitore, Nome, Indirizzo, Citta) Prodotti (CodiceProdotto, Tipo, Marca, Modello) Catalogo (CodiceFornitore,

Dettagli

Università degli Studi di Bologna Facoltà di Ingegneria. Tecnologie Web L-A A.A. 2014 2015. Esercitazione 08 DAO e Hibernate

Università degli Studi di Bologna Facoltà di Ingegneria. Tecnologie Web L-A A.A. 2014 2015. Esercitazione 08 DAO e Hibernate Università degli Studi di Bologna Facoltà di Ingegneria Tecnologie Web L-A A.A. 2014 2015 Esercitazione 08 DAO e Hibernate Agenda Pattern DAO e framework Hibernate progetto d'esempio relativo alla gestione

Dettagli

Application Server per sviluppare applicazioni Java Enterprise

Application Server per sviluppare applicazioni Java Enterprise Application Server per sviluppare applicazioni Java Enterprise Con il termine Application Server si fa riferimento ad un contenitore, composto da diversi moduli, che offre alle applicazioni Web un ambiente

Dettagli

Data Base in Internet

Data Base in Internet Data Base in Internet Esempio di applicazione ASP Prof. Claudio Maccherani Un applicazione che interroghi un database remoto in un server Web è scritta in ASP (Active Server Page) se piattaforma NT / IIS

Dettagli

La principale particolarità del web dinamico è la possibilità di variare i contenuti delle pagine in base alle richieste degli utenti.

La principale particolarità del web dinamico è la possibilità di variare i contenuti delle pagine in base alle richieste degli utenti. La principale particolarità del web dinamico è la possibilità di variare i contenuti delle pagine in base alle richieste degli utenti. Questa possibilità si materializza attraverso i meccanismi che permettono

Dettagli

Anno 2013 Informatica ABACUS

Anno 2013 Informatica ABACUS Anno 2013 Informatica ABACUS Testo Una Società Aeroportuale commissiona lo sviluppo di un software per la gestione dei controlli passeggeri e merci nei vari punti di dogana presenti in un Aeroporto Internazionale.

Dettagli

Questo punto richiederebbe uno sviluppo molto articolato che però a mio avviso va al di là delle possibilità fornite al candidato dal tempo a disposizione. Mi limiterò quindi ad indicare dei criteri di

Dettagli

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server 2) Il Server richiama l'interprete PHP il quale esegue i comandi contenuti nel file.php specificato nell'attributo action del tag form creando un file HTML sulla base dei dati inviati dall utente 1) Il

Dettagli

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni Uso dei data bases con PHP Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni MDAC MDAC è l acronimo di Microsoft Data Access Component e fa parte della tecnologia Microsoft denominata Universal

Dettagli

RELAZIONE E-COMMERCE

RELAZIONE E-COMMERCE RELAZIONE E-COMMERCE di Jessica Gregoire Istituto Tecnico Economico Agostino Bassi Anno scolastico 2012/2013 1 INDICE Traccia del problema : pagina 2 Analisi di massima: pagina 2 Analisi al dettaglio:

Dettagli

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Pag. 1/1 Sessione ordinaria 2010 Seconda prova scritta Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO DI ORDINAMENTO Indirizzo: INFORMATICA

Dettagli

M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Pag. 1/1 Sessione ordinaria 2009 Seconda prova scritta M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO DI ORDINAMENTO Indirizzo: INFORMATICA Tema di: INFORMATICA (Testo valevole per i corsi di

Dettagli

ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO SPERIMENTALE Progetto ABACUS SIMULAZIONE PROVA SCRITTA DI INFORMATICA

ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO SPERIMENTALE Progetto ABACUS SIMULAZIONE PROVA SCRITTA DI INFORMATICA Istituto di Istruzione Superiore Alessandrini - Marino ESAME DI STATO DI ISTITUTO TECICO IDUSTRIALE CORSO SPERIMETALE Progetto ABACUS SIMULAZIOE PROVA SCRITTA DI IFORMATICA La società PcTeramo srl è una

Dettagli

Laboratorio di Sistemi Autenticazione utente mediante MySQL Jsp [Java]

Laboratorio di Sistemi Autenticazione utente mediante MySQL Jsp [Java] Per la comprensione del presente articolo, occorre aver assimilato i concetti esposti nell'articolo Prototipo autenticazione utente (file autenticazione_2.pdf). (Tratto da Wikipedia, l'enciclopedia libera)

Dettagli

SQLSCHEDULER PER MS SQL SERVER EXPRESS

SQLSCHEDULER PER MS SQL SERVER EXPRESS KING Manuale Tecnico Documentazione ad uso esclusivo dell installatore della procedura SQLSCHEDULER PER MS SQL SERVER EXPRESS KING GESTIONALE - KING STUDIO - TURBODOC Aggiornato al 04/07/2011 DATALOG Soluzioni

Dettagli

Caratteristiche dell'applicativo da utilizzare Schema generale della procedura e organizzazione dei dati

Caratteristiche dell'applicativo da utilizzare Schema generale della procedura e organizzazione dei dati Esame di Stato Istituto Tecnico Commerciale CORSO SPERIMENTALE Progetto "MERCURIO" Indirizzo: PROGRAMMATORI Soluzione della Seconda Prova Tema di: INFORMATICA Anno Scolastico: 2002-2003 Riflessioni e apparecchiature

Dettagli

Introduzione a MySQL

Introduzione a MySQL Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da

Dettagli

ACTIVE SERVICE PAGES E DATABASE: tecnologia ADO

ACTIVE SERVICE PAGES E DATABASE: tecnologia ADO ACTIVE SERVICE PAGES E DATABASE: tecnologia ADO LEGGERE E VISUALIZZARE I DATI DI UNA TABELLA IN UNA PAGINA WEB Per visualizzare i dati di una tabella in una pagina web, dobbiamo utilizzare l'oggetto ADODB.Recordset

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Basi di dati Il linguaggio SQL teoria e pratica con Microsoft Access Riepilogando Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Riepilogando Basi di dati Il linguaggio SQL Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi degli attributi, domini, 2. una parte

Dettagli

Laboratorio di sistemi Web Application in Php5 Php

Laboratorio di sistemi Web Application in Php5 Php Applicazioni web con Xampp, Php5 e NetBeans 6.5 (Windows) Vogliamo ora riscrivere a titolo di prova un'applicazione web precedentemente scritta in Java (si legga l'articolo all'indirizzo http://www.mauriziocozzetto.net/pdf/dao_mysql.pdf).

Dettagli

Comprendere ADO.NET. La guida definitiva per comprendere a fondo ADO

Comprendere ADO.NET. La guida definitiva per comprendere a fondo ADO 060-063 Database 3-03-2005 16:23 Pagina 62 DATABASE La guida definitiva per comprendere a fondo ADO Accesso ai DB con Visual Basic.Net 2003 L ultimo articolo che ci aiuterà ad interagire con i database,

Dettagli

Esercitazione: Il DBMS MySQL

Esercitazione: Il DBMS MySQL Laurea in Ingegneria Informatica SAPIENZA Università di Roma Insegnamento di Basi di Dati Esercitazione: Il DBMS MySQL Marco Console Aspetti Organizzativi Marco Console Sito: www.dis.uniroma1.it/~console

Dettagli

2 Anno 2003 - Informatica ABACUS

2 Anno 2003 - Informatica ABACUS Testo Un vivaio vuole realizzare una base di dati per gestire le sue attività di vendita di piante e le sue attività esterne. Si vogliono memorizzare, oltre alle informazioni generali sulle diverse specie

Dettagli