Classe com.ibm.etools.xmltosql.XMLToSQL

java.lang.Object
        com.ibm.etools.xmltosql.XMLToSQL

public class XMLToSQL extends Object

XMLToSQL viene utilizzato per inserire, aggiornare o eliminare righe in una tabella di database utilizzando un documento XML. L'associazione tra la struttura XML e la struttura della tabella è basata su un insieme di regole di associazione semplici. Il frammento XML di seguito riportato illustra le regole di associazione:

   <rootElement>
     <EMPLOYEE>
       <FIRSTNAME>CHRISTINE</FIRSTNAME>
       <LASTNAME>HAAS</LASTNAME>
     </EMPLOYEE>
     <EMPLOYEE>
       <FIRSTNAME>MICHAEL</FIRSTNAME>
       <LASTNAME>THOMPSON</LASTNAME>
     </EMPLOYEE> 
     ...
   </rootElement>

Un metodo efficace per creare un documento XML valido consiste nell'utilizzare prima la libreria SQLToXML per generare un documento, quindi modificare il documento per fornire nuovi valori per l'aggiornamento. È possibile anche utilizzare la procedura guidata Da XML a SQL per verificare la validità del documento XML prima di scrivere il codice che utilizza la libreria XMLToSQL.

Tabella 1. Indice costruttori
Costruttore Descrizione
XMLToSQL(SQLProperties) L'unico costruttore.
Tabella 2. Indice metodi
Metodo Descrizione
void addToKeyColumns(String) Aggiunge all'elenco delle colonne chiave i nomi utilizzati nella generazione della proposizione where per UPDATE o DELETE.
void addToUpdateColumns(String) Aggiunge all'elenco delle colonne i nomi aggiornati o inseriti.
void execute(Document, Boolean) Aggiorna una tabella da un documento DOM.
void execute(InputStream) Aggiorna una tabella da un flusso di input XML.
void execute(InputStream, Boolean) Aggiorna una tabella da un flusso di input XML.
void execute(String) Aggiorna una tabella da un file XML.
void execute(String, Boolean) Aggiorna una tabella da un file XML.
void finalize() Chiude la connessione, se creata internamente.
Vector getFailedStatements() Restituisce un insieme di istruzioni SQL, non riuscite durante l'esecuzione.
String getTableName(InputStream) Restituisce il nome della tabella di database da aggiornare.
String getTableName(String) Restituisce il nome della tabella di database da aggiornare.
void setConnection(Connection) Fornisce una connessione JDBC da utilizzare per l'aggiornamento delle tabelle.
void setTrace(Boolean) Imposta l'indicatore di traccia.
void setTrace(Boolean, PrintWriter) Imposta l'indicatore di traccia.
Boolean updateMultipleRows(String, Vector) Determina se più righe vengono aggiornate una volta richiamato uno dei metodi execute().

Costruttori

XMLToSQL
public XMLToSQL(SQLProperties sqlProperties)

L'unico costruttore. Qualsiasi informazione necessaria per l'aggiornamento di una tabella di database viene fornita mediante SQLProperties.

Metodi

addToKeyColumns
public void addToKeyColumns(String columnName) throws Exception

Aggiunge all'elenco delle colonne chiave i nomi utilizzati nella generazione della proposizione where per UPDATE o DELETE. Se la tabella contiene chiavi primarie, vengono utilizzate le colonne delle chiavi primarie. Questo metodo è utile se per una tabella non è definita alcuna colonna chiave primaria ma richiede particolare attenzione, in quanto più righe possono essere aggiornate involontariamente. Un colonna non può essere contemporaneamente una colonna chiave e una colonna di aggiornamento. Questo metodo non ha alcun effetto per INSERT.

addToUpdateColumns
public void addToUpdateColumns(String columnName) throws Exception

Aggiunge all'elenco delle colonne i nomi aggiornati o inseriti. Se questo metodo non viene richiamato prima di uno dei metodi execute(), tutte le colonne escluse le colonne chiave vengono aggiunte all'elenco da SQLToXML per UPDATE o INSERT. Un colonna non può essere contemporaneamente una colonna chiave e una colonna di aggiornamento. Questo metodo non ha alcun effetto per DELETE.

execute
public void execute(Document doc,
                    Boolean continueOnSQLError)
           throws SQLException, ClassNotFoundException, IOException,
                  SAXException, ParserConfigurationException

Aggiorna una tabella da un documento DOM. Modalità di transazione diverse vengono applicate in base al valore booleano di continueOnSQLError. Quando il valore è true, l'aggiornamento continua per il resto delle righe, anche se si verifica un errore. Per controllare su quali righe non si è verificato l'aggiornamento, è necessario richiamare getFailedStatements(). Se continueOnSQLError è false, il rollback viene eseguito su tutte le righe elaborate su cui si è verificato un errore.

execute
public void execute(InputStream inputStream)
           throws SQLException, ClassNotFoundException, IOException,
                  SAXException, ParserConfigurationException

Aggiorna una tabella da un flusso di input XML. Se si verifica un errore durante l'aggiornamento di una riga, viene eseguito il rollback per tutte le righe elaborate.

execute
public void execute(InputStream inputStream,
                    Boolean continueOnSQLError)
           throws SQLException, ClassNotFoundException, IOException,
                  SAXException, ParserConfigurationException

Aggiorna una tabella da un flusso di input XML. Modalità di transazione diverse vengono applicate in base al valore booleano di continueOnSQLError. Quando il valore è true, l'aggiornamento continua per il resto delle righe, anche se si verifica un errore. Per controllare su quali righe non si è verificato l'aggiornamento, è necessario richiamare getFailedStatements(). Se continueOnSQLError è false, il rollback viene eseguito su tutte le righe elaborate su cui si è verificato un errore.

execute
public void execute(String filename)
           throws SQLException, FileNotFoundException,
                  ClassNotFoundException, IOException, SAXException,
                  ParserConfigurationException

Aggiorna una tabella da un file XML. Se si verifica un errore durante l'aggiornamento di una riga, viene eseguito il rollback per tutte le righe elaborate.

execute
public void execute(String filename,
                    Boolean continueOnSQLError)
           throws SQLException, FileNotFoundException,
                  ClassNotFoundException, IOException, SAXException,
                  ParserConfigurationException

Aggiorna una tabella da un file XML. Modalità di transazione diverse vengono applicate in base al valore booleano di continueOnSQLError. Quando il valore è true, l'aggiornamento continua per il resto delle righe, anche se si verifica un errore. Per controllare su quali righe non si è verificato l'aggiornamento, è necessario richiamare getFailedStatements(). Se continueOnSQLError è false, il rollback viene eseguito su tutte le righe elaborate su cui si è verificato un errore.

finalize
public void finalize()

Chiude la connessione, se creata internamente. Se la connessione è stata fornita esternamente (utilizzando setConnection()), non viene eseguita alcuna azione. Questo metodo viene richiamato da JVM quando XMLToSQL è garbage-collected.

getFailedStatements
public Vector getFailedStatements()

Restituisce un insieme di istruzioni SQL, non riuscite durante l'esecuzione. Questo metodo è utile solo quando l'indicatore continueOnError è true.

getTableName
public String getTableName(InputStream inputStream)
             throws IOException, SAXException,
                    ParserConfigurationException

Restituisce il nome della tabella di database da aggiornare. Questo metodo viene fornito per stabilire il nome della tabella dal flusso di input XML prima dell'esecuzione di un'istruzione SQL. Ciò semplifica l'attività dei componenti dell'interfaccia utente.

getTableName
public String getTableName(String filename)
             throws IOException, SAXException,
                    ParserConfigurationException

Restituisce il nome della tabella di database da aggiornare. Questo metodo viene fornito per stabilire il nome della tabella dal flusso di input XML prima dell'esecuzione di un'istruzione SQL. Ciò semplifica l'attività dei componenti dell'interfaccia utente.

setConnection
public void setConnection(Connection jdbcConnection)

Fornisce una connessione JDBC da utilizzare per l'aggiornamento delle tabelle. Questo metodo risulta utile quando in un programma applicativo si desidera utilizzare il meccanismo di gestione delle connessioni, ad esempio il pool di connessioni. Se questo metodo non viene richiamato prima di uno dei metodi execute(), XMLToSQL crea la connessione utilizzando i valori di SQLProperties.

setTrace
public void setTrace(Boolean flag)

Imposta l'indicatore di traccia. Le istruzioni SQL da eseguire vengono stampate sulla console quando l'indicatore è true. Per impostazione predefinita, la traccia è disattivata.

setTrace
public void setTrace(Boolean flag,
                     PrintWriter writer)

Imposta l'indicatore di traccia. Le istruzioni SQL da eseguire vengono stampate sul writer quando l'indicatore è true. Per impostazione predefinita, la traccia è impostata su false.

updateMultipleRows
public Boolean updateMultipleRows(String uri,
                                  Vector keys) throws Exception

Determina se più righe vengono aggiornate/eliminate una volta richiamato uno dei metodi execute(). Esiste la possibilità che più righe vengano modificate nella modalità UPDATE/DELETE quando l'operazione viene eseguita in una tabella che non presenta alcuna chiave primaria. Questo metodo restituisce il valore false se una singola riga è condizionata dall'elemento XML di origine corrispondente e true negli altri casi.

Attività correlate
Generazione di XML da SQL mediante una procedura guidata
Aggiornamento di tabelle mediante la classe XMLToSQL

Riferimenti correlati
Classe com.ibm.etools.xmltosql.SQLProperties
Classe com.ibm.etools.sqltoxml.SQLToXML

Termini di utilizzo | Feedback
(C) Copyright IBM Corporation 2000, 2004. Tutti i diritti riservati.