2009-07-04 8 views
9

Ho faticato per ottenere un programma Java per connettersi a MS SQL Server e sto iniziando a chiedermi se MySQL sarebbe una scelta migliore per il mio progetto (di apprendimento).Qual è il miglior database da utilizzare con un programma java?

Le esercitazioni di Sun si riferiscono al DB Java, ma non ne ho mai sentito parlare in nessun altro contesto, quindi non sembra il database più utile da cui imparare.

Apprezzo tutto il modo più naturale per connettere Java a un database comunemente utilizzato.

risposta

5

Il tipo o il nome del database non influirà sul processo di formazione poiché si lavorerà con JDBC.

Penso che tu possa andare con qualsiasi. Basta impostarlo nel modo corretto sulla macchina e connettersi con la stringa di connessione appropriata.

9

Forse potresti descrivere i problemi che hai avuto con la connessione a MS SQL. Certo che è possibile, quindi è probabile che qualcosa di piccolo che hai o non hai fatto impedisca il funzionamento della connessione.

Esistono molti server di database open source con driver JDBC. Uno che si potrebbe considerare è HSQLDB che ha una modalità completamente in memoria in modo da non dover nemmeno pensare di configurare un server. Questo è probabilmente un ottimo modo per imparare le basi di SQL.

+1

Oltre a HSQLDB, H2 (http://www.h2database.com/) può anche essere una buona scelta per imparare la programmazione del database. Personalmente preferisco H2 a HSQLDB grazie al suo buon web gui e al migliore isolamento delle transazioni. –

1

Tutto ciò con un driver JDBC dovrebbe funzionare bene. Non penso che troverai mai una risposta definitiva a ciò che è "meglio", è una domanda molto soggettiva. Usiamo InterBase sul mio lavoro e non ho problemi.

2

Raccomando MySQL o Oracle. Da Oracle è possibile ottenere anche un database gratuito, tuttavia la dimensione del database è limitata.

Il ragionamento per questo è che quelli sono i database più utilizzati ed è bello avere una certa visibilità per quelli. Usa JDBC e la sua interfaccia simile, ma facendo il codice sopra il database e ci sono altre cose che devi imparare. Soprattutto se fai qualche applicazione un po 'più complessa. Anche sporcarsi le mani con le operazioni di base con il database è sempre buono.

+0

Oracle è gratuito solo finché non viene messo in produzione. –

0

Se si vuole rimanere in Java, un'opzione è Berkeley DB Java Edition. È lo stesso software BDB di Sleepycat, che godeva di un'ottima reputazione nel mercato dei database integrati.

0

Scegli un database che puoi capire come installare. La maggior parte sono piuttosto semplici e ti daranno una buona idea di come sia l'uso di un database. Una volta che hai un'app funzionante, prova a portarla su un altro database. Raccomanderei di usare JavaDB per il primo e poi uno degli altri db - Oracle, MySQL, Postgres, ecc.

0

Il problema più grande che ho avuto con l'utilizzo di MSSql è quando si utilizza l'antiquato JDBC -> ODBC Bridge i conducenti; questi fanno un wrapper Java semi-assed attorno alle chiamate ODBC, che sono traballanti e fragili. Se si utilizza JDBC ODBC Bridge, sostituirli con i driver JDBC nativi più recenti di Microsoft: funzionano un milione di volte meglio.

5

Java DB è rimarchiato da Apache Derbrand e incluso nel JDK.È ok, ed è molto più facile da installare rispetto ai database nativi.

È molto importante utilizzare un buon driver per il database! Questo potrebbe risolvere tutti i tuoi problemi di connessione.

Si noti inoltre che se si cambia database, è molto probabile che sia necessario modificare il codice SQL a meno che non si utilizzi un livello come Hibernate o JPA.

+0

Derby non è probabilmente un ottimo DBMS con cui imparare. È dolorosamente lento e manca molto nell'area SQL. L'ultima volta che l'ho usato (6 mesi fa), questo includeva la dichiarazione "MERGE"/"INSERT ... ON DUPLICATE KEY" e le opzioni LIMIT/OFFSET sulle query. Tra molte altre funzionalità mancanti. – BobMcGee

+0

Apprezzerei i collegamenti a pagine buone che descrivono la parte "dolorosamente lenta". LIMIT/OFFSET sono dipendenti dal database, quindi è probabilmente chiamato qualcos'altro. –

1

Il modo più semplice per connettersi a un database relazionale esterno (a differenza di un database in memoria come berkeley db) è tramite JDBC. È necessario acquisire familiarità con JDBC prima di passare a qualsiasi altro metodo di archiviazione. Per la maggior parte dei progetti starai bene usando mysql o postgresql. Non preoccuparti di decidere l'uno sull'altro, per i progetti più piccoli le differenze non sono rilevanti. Finché si utilizza jdbc, sarà difficile passare da uno all'altro in caso di necessità.

Per iniziare, scaricare mysql e seguire il tutorial jdbc sul sito sun http://java.sun.com/docs/books/tutorial/jdbc/index.html).

In un secondo momento potresti decidere di utilizzare uno strumento di mappatura relazionale dell'oggetto, come la sospensione, ma non mi preoccuperei nemmeno di questo, basta familiarizzare con jdbc e con mysql o postgresql.