La funzionalità discussa in questa domanda è eseguire lo script SQL specificato. Il contenuto dello script è destinato a essere definito dall'utente durante il runtime dell'applicazione. Lo script può essere una dichiarazione INSERT
o una sequenza di istruzioni complesse PL/SQL
. Poiché l'input disponibile durante il runtime (eventualmente come istanza di String) deve essere eseguito tramite Java.Approccio generale per l'esecuzione di script SQL in Java
L'approccio attuale prevede di inserire l'input dell'utente con un PreparedStatement
e di eseguirlo. Questa soluzione funziona per i casi di test esistenti. La preoccupazione principale è fornire la piena funzionalità del database utilizzato che potrebbe non essere coperto dai test, ovvero la soluzione più vicina a passare lo stesso script SQL dell'utente nella console fornita dal fornitore del database.
Mi chiedo se non ci siano limitazioni previste nell'approccio corrente con PreparedStatement
? Esiste un migliore approccio generale per l'esecuzione di script SQL tramite Java?
Che cosa stai cercando di fare esattamente? Vuoi semplicemente eseguire tutto, stai cercando di creare qualcosa come http://sqlfiddle.com/? –
Le vulnerabilità di sicurezza sono una preoccupazione qui? Esistono restrizioni adeguate per impedire alla sceneggiatura di fare qualcosa di potenzialmente indesiderato o pericoloso? (Ad es. Tramite i privilegi dell'utente nel database?) –
@SteveChambers non ci sono problemi di vulnerabilità, poiché l'utente modifica il proprio database e ne è pienamente responsabile. La preoccupazione principale è fornire la funzionalità completa del database nel modo più efficiente. –