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.
Costruttore | Descrizione |
---|---|
XMLToSQL(SQLProperties) | L'unico costruttore. |
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(). |
public XMLToSQL(SQLProperties sqlProperties)
L'unico costruttore. Qualsiasi informazione necessaria per l'aggiornamento di una tabella di database viene fornita mediante SQLProperties.
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.
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.
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.
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.
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.
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.
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.
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.
public Vector getFailedStatements()
Restituisce un insieme di istruzioni SQL, non riuscite durante l'esecuzione. Questo metodo è utile solo quando l'indicatore continueOnError è true.
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.
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.
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.
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.
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.
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.