Utilizzo di Apache Derby con Java (J2ME, ma non credo che faccia la differenza) esiste un modo per verificare se un database esiste già e contiene una tabella?Derby Apache - Verifica database già creato?
risposta
Non ne conosco nessuno, ad eccezione di pochi lavori in giro, a differenza di MySQL dove abbiamo questa funzione di IF EXIST.
Quello che si fa è cercare di connettersi al database, se non è probabile che non sia lì. E dopo una connessione riuscita, puoi fare una semplice selezione, come SELECT count (*) FROM TABLE_NAME, per sapere se la tabella esiste o meno. Sarai dipendente dall'eccezione. Anche in un esempio ufficiale di Sun, ho visto il lavoro simile in giro.
In Oracle disponiamo di tabelle del dizionario per conoscere gli oggetti del database. Dubito che abbiamo qualcosa del genere in Derby.
[Edited]
Beh, ho scoperto che c'è un modo per sapere se la tabella esiste. Prova, SELEZIONA tablename FROM SYSTABLES. È per verificare l'esistenza di una tabella, per il controllo del database potrebbe essere necessario fare qualcosa di simile, ho spiegato sopra.
Adeel, si potrebbe anche usare Connection.getMetaData per restituire un oggetto DatabaseMetaData, quindi utilizzare il getTables, una volta che hai la connessione al database, naturalmente. Questo ha il vantaggio di lavorare per qualsiasi database con un driver JDBC che vale quanto sale.
Per verificare se il database esiste, se si utilizza Derby in modalità incorporata o se il server si trova sulla stessa macchina, è possibile verificare se esiste la cartella per il database. È un po 'folle però. Vorrei fare come suggerisce Adeel e provare a connettermi, rilevando l'eccezione se non è lì.
Suggerirei di ottenere l'oggetto DatabaseMetaData, quindi utilizzare il metodo getTables (null, null, null, new String [] {"TABLE"}) da esso, che restituisce un ResultSet. Utilizzare il metodo next() del ResultSet, che restituisce un valore booleano, per verificare se esistono tabelle. Se si verifica true, esistono tabelle esistenti. False e il database è vuoto.
- 1. Apache Derby - java.sql.SQLException: impossibile avviare il database
- 2. Gli INSERTS di Apache Derby sono lenti
- 3. Dove viene memorizzato il database Derby quando viene creato da Netbeans?
- 4. hadoop multiple già creato eccezione
- 5. Dove è andato il plug-in Apache Derby Eclipse?
- 6. connessione a un database derby basato su file
- 7. pallone creato dal database
- 8. Come verificare se USER è già stato creato nel database o no in SQL?
- 9. Derby dialect for hibernate
- 10. Verifica utente e password su un file creato da htpasswd
- 11. Modifica password Derby DB
- 12. Creato directory alias apache, ma non funziona
- 13. Derby - vincoli
- 14. SDL2 - Verifica se il contesto OpenGL è stato creato
- 15. Come arrestare il database Derby in memoria Correttamente
- 16. Verifica se una costante è già definita
- 17. Signalr verifica se l'hub è già avviato
- 18. Verifica se mapView contiene già un'annotazione
- 19. BigQuery - Verifica se la tabella esiste già
- 20. Avvia automaticamente JavaDB (Derby) su GlassFish
- 21. Derby con un'API RESTful
- 22. derby origini dati - connessione rifiutata
- 23. Ometti lo schema nella query DERBY
- 24. C'è uno strumento diverso da ij per cercare in un database derby locale (cartella)?
- 25. Derby/JavaDB vs SQLiteJDBC
- 26. Derby: equivalente CONCAT
- 27. Dynamic ical creato dal database non funzionante
- 28. IllegalStateException: database già chiuso (utilizzando ViewPager)
- 29. JUnit Verifica un errore del database?
- 30. Collegamento al database Oracle. Verifica esistenza o sovrascrittura?
Vedere anche http://stackoverflow.com/questions/584497/apache-derby-check-database-already-created – Raedwald