Non sono chiaro su passaggi/dettagli di configurazione su come posso incorporare mysql in un'applicazione desktop Java in modo che (applicazione) possa essere installato su qualsiasi macchina tramite un singolo file eseguibile e così facendo up database e fornisce anche un exe per eseguire l'app. Finora ho costruito la mia app usando netbeans e ho usato mysql per impostare database.plz mi guida ulteriormente.Incorporamento di mysql nell'applicazione desktop java
risposta
MySQL non è un database incorporato: l'unico JAR ad esso correlato è il driver JDBC. Richiede un processo di installazione, che potrebbe essere possibile eseguire lo scripting tramite Java, ma il processo funzionerà sicuramente al di fuori dell'applicazione Java che si intende supportare. Significato, è possibile disattivare l'applicazione Java, ma il servizio/demone MySQL sarà ancora in esecuzione.
Solo il libmysqld è integrabile.
Esistono database incorporati - SQLite, Firebird - e database incorporati realizzati in Java - HSQL, Derby/(non ricordo come è stato chiamato prima). Credo che SQL Server Compact Edition sia integrabile, mentre SQL Server Express/MSDE no. Non so se Oracle ha una versione incorporabile ....
Esiste una versione di MySQL, libmysqld per l'incorporamento. Ma sono d'accordo con te sul fatto che ci sono altri database più adatti al lavoro. Dato che questo è Java, raccomanderei HSQL. – Cesar
@Cesar: Thx, non sapevo di libmysqld –
Mentre teoricamente possibile, non sarebbe facile. Le distribuzioni standard di MySql presuppongono che si voglia configurare un server database generico separato dalle applicazioni client che iniziano via odbc ecc.
Si può guardare meglio alle opzioni "pure java" come HSQL o JavaDB progettate per essere incorporato in un'applicazione java e richiede poca o nessuna "configurazione".
Un'altra possibilità è Sqlite che richiede solo un singolo binario più il file jar sqljbbc. Anche questo è stato progettato da zero per essere incorporato all'interno di un'applicazione e richiede zero admin a parte allocare un file per il database.
considerando che è possibile, come hai detto, puoi citare qualsiasi link tutorial su come configurarlo, lascia che sia complesso o così –
Consiglio vivamente H2. È un database incorporato molto veloce scritto in Java e ho trovato più facile da usare rispetto ad altri menzionati come HSQL.
Edit:
Sul sito H2, si può vedere un speed comparison of H2 vs Derby, HSQL, MySql, ecc ...
può h2 gestire una grande quantità di dati e può ne facciamo un backup facilmente? – Andrew
Il backup di h2 è abbastanza semplice. L'ultima volta che l'ho provato, H2 non ha scalato bene fino a gigabyte di dati come MySql. Penso che dovrebbe essere in grado di gestire 5000 righe anche se senza troppi problemi. –
Se si desidera un database incorporato con java, quindi utilizzare uno scritto in Java progettato per essere incorporato. So che Apache Derby può essere incorporato e apparentemente anche H2.
Quanto è grande la quantità di dati necessari per gestire il database?
Sto lavorando su un tipo di software di contabilità che deve tenere traccia dei pagamenti effettuati e quindi generare report di conseguenza .. ora quale tipo di database incorporato può essere sufficiente per il mio requisito? – Andrew
Vieni con una stima della quantità di dati che ti aspetti. Solo le dimensioni - 1, 1000, 1000000 ecc. - per il numero di tabelle, righe in ogni tabella, quantità totale di dati per ogni tabella, ecc. –
Le righe possono essere 5k e quindi devono essere spostate nell'archivio ... ora puoi aiutarti? – Andrew
Dai uno sguardo allo http://dev.mysql.com/doc/refman/5.0/en/connector-mxj.html. Non ricordo i dettagli esatti ma sono stato in grado di incorporare MySQL db nell'applicazione desktop senza che l'utente debba installarlo separatamente.
La classe chiave è com.mysql.management.MysqldResource.
Ecco l'esempio, http://dev.mysql.com/doc/refman/5.0/en/connector-mxj-configuration-java-object.html
Il file mysql-connector-MXJ-gpl-db-files.jar contiene i file di installazione di MySQL per tutte le piattaforme. Se sai qual è la tua piattaforma di destinazione, puoi rimuovere altre versioni della piattaforma da jar, per ridurre le dimensioni del download per l'utente finale.
hai incorporato mysql nell'app desktop? Come? È possibile? –