lunedì 25 gennaio 2010

inserimento di una riga in una tabella

l'INSERIMENTO DI UNA RIGA IN UNa tabella può avvenire in due modi

  1. ESEGUENDO UN'ISTRUZIONE SQL DI INSERT INTO

es: INSERT INTO studenti(nome, cognome) VALUES ('Giovanni', 'Verdi')

2UTILIZZANDO IL METODO insertRow() di ResultSet

executeUpdate()

esegue un'istruzione di SQL di modifica dati (INSERT, UPDATE, DELETE) restituendo il numero dei record coinvolti

esempi di utilizzo del metodo executeUpdate()

INSERIMENTO
st.executeUpdate("INSERT INTO persone(nome, cognome)
VALUES ('giovanni', 'verdi')");

MODIFICA
st.executeUpdate( "UPDATE persone
SET nome = 'giuseppe'
WHERE cognome = 'Verdi' ");

CANCELLAZIONE
st.executeUpdate( "DELETE FROM persono
WHERE cognome = 'Verdi' ");

gestione dei risultati

come abbaimo detto i risultati restituiti dalla executeQuery sono memorizzati nel ResultSet

è possibile con un ciclo while scorrere tutto il ResultSet per ottenere i valori restituiti

while(rs.next()){
System.out.printl("il nome è " + rs.getString("nome"))
}
in questo modo stamperò tutti i valori della colonna nome

executeQuery(...)

importante specificare che il linguaggio sql può essere implementato in modo differente dalle software house .

ResultSet rs = st.executeQuery(String SQL)
1 IL RISULTATO è "PASSATO" AD UN OGGETTO DI CLASSE ResultSet
2 executeQuery VIENE INVOCATO SU UN OGGETTO DI CLASSE Statement
3 PRENDE UNA STRINGA COME PARAMETRO. TALE STRINGA è UN'ISTRUZIONE SQL

VIENE UTILIZZATO PER INTERROGARE IL DATABASE

SELECT colonna1, colonna2,...
FROM nomeTabella
WHERE condizioni di ricerca

se pongo SELECT * seleziono tutte le colonne associate alla tabella

si possono usare per determinare le condizioni di ricerca anche operatori aritmetici, di confronto, logici,...


caratteri jolly: * e ?

singoli passaggi

  1. Caricare il driver
Class.forName("sun:jdbc:odbc:JdbcOdbcDriver");
La stringa "sun:jdbc:odbc:JdbcOdbcDriver" identifica il driver JDBC-ODBC

Puo dare un'eccezione quindi porta in un try{ Class.for.....} e poi scrivere catch( ClassNotFoundException e){}

2. CREARE UNA CONNESSIONE

Connection con = DriverManager.getConnection("jdbc:odbc:nomeDSN")

odbc indica il driver da utilizzare, mentre nomeDSN il nome dell'origine dati

può dare un'eccezione quindi deve essere gestita in un blocco try-catch di tipo SQLException

3 OPERAZIONI SUL DATABASE

per esegurire operazioni sul database occorre un oggetto di classe Statement.

Statement st = con.createStatement();

può dare un'eccezione quindi deve essere gestita in un blocco try-catch di tipo SQLException

Statement offre due metodi:

executeQuery(String SQL) PER INTERROGARE IL DATABASE

il risultato viene passato ad un oggetto di classe ResultSet

executeUpdate(String SQL) PER L'INSERIMENTO, LA MODIFICA O LA CANCELLAZIONE DI DATi

4 CHIUSURA DEGLI OGGETTI

rs.close(); st.close(); con.close();

SQLException ----> usare try cath

Accesso a Database

I driver per database sono programmi che permettono di accedere a un database in modo standard, senza dover scrivere istruzioni specifiche per ogni diverso tipo di database.

un'applicazione Java può accedere a un database attraverso un driver JDBC.
JDBC mette a disposizione degli oggetti per accedere al database, presenti nel package java.sql :
Connection, Statement, ResultSet,...

uno dei driver più utilizzati sui sistemi Windows è il driver JDBC-ODBC. Richiede:
1. l'installazione del driver ODBC
2. la configurazione di una DSN

Una DSN identifica il database indicando dove si trova il database e quale driver ODBC si vuole utilizzare per accedervi


RIASSUMENDO: QUALI SONO I PASSE PER ACCEDERE AD UN DATABASE?
  1. caricare un driver specifico del database
  2. aprire una connessione con il database
  3. impostare la query
  4. eseguire la query e ottenere i risultati
  5. gestire i risultati
  6. chiudere gli oggetti aperti