Domanda

È CPAN DBI la migliore interfaccia di database da utilizzare in Perl generali per l'utilizzo di database?Ci sono alcune opzioni di meglio?

È stato utile?

Soluzione

Se siete solo in cerca di basso livello di accesso al database—si rinnova ogni stringa SQL (facoltativamente con segnaposto e associa i valori) e si esegue la query e restituisce i risultati, allora sì, DBI è la vostra scommessa migliore, di gran lunga.

Se si desidera un maggiore livello di interfaccia (cioè, uno che richiede poco o nessun uso di materie prime di SQL nel codice), poi ci sono diversi Orm (object-relational mapper disponibile per il Perl.Controllare il ORM pagina Perl Fondazione di Perl 5 wiki per ulteriori informazioni e collegamenti.(Se avete bisogno di aiuto per scegliere tra di loro o con domande specifiche, si potrebbe restringere il focus di questa domanda, o forse post di un altro.)

Altri suggerimenti

DBI è il "basso livello" interfaccia tra Perl e un DBMS.È praticamente l'unica scelta realistica per farlo.Paragonabile a JDBC Java.Sarebbe folle (o hanno un utilizzo molto specifico caso) per prendere qualcosa di diverso DBI per voi a basso livello di interfaccia tra Perl e un database.

In cima DBI, ci sono vari object/relational mapper che consentono di lavorare con un database molto più pulito e più facile.

Alcuni dei comune/più popolari sono

Se si è scelto di utilizzare pianura DBI per un'attività che non ha bisogno di un ORM, ho consigliamo vivamente di dare un'occhiata a DBIx::Semplice.

Non è una sostituzione, ma molto ben progettato API in cima DBI che rende le cose semplici e complesse le cose possibili, senza perdere la flessibilità di DBI.

Hai mai trovato dovevano guardare a quanto pare le cose semplici in DBI la documentazione, come ottenere i risultati di una query come un arrayref (righe) di hash (colonne e i loro valori)?Con DBIx::Simple questo è molto semplice:

# DBI
my $rows = $dbh->selectall_arrayref($sql, { Slice => {} });
                 # tell it we want "hashes" (yuck!) ^^^^

# DBIx::Simple
my $rows = $db->query($sql)->hashes; # does the same as the above code underneath!

Date un'occhiata al esempi per ulteriori.Inoltre, l'integrazione con SQL::Astratto rende semplice query di una brezza.Si utilizza in tutti il mio codice dove avrei usato DBI prima, e Io non sto guardando indietro.

Vale la pena sottolineare che la stragrande maggioranza di "livello superiore" interfacce (come SQL::Astratto) e (DBIx::Semplice) utilizzare DBI stesso, quando in realtà l'esecuzione di query.DBI è praticamente lo standard accettato metodo per la connessione al database in Perl.

Se si desidera lavorare con gli oggetti (con l'introspezione!), date un'occhiata a Fey::ORM che implementa ORM basato su Moose.E 'anche molto SQL sintassi in modo che si adatta il mio RDBMS a base di cervello un po' meglio di alcuni altri ORM quadri.

Guarda Classe::DBI come bene.

A mio parere, DBI è una scelta molto buona.Ho usato DBD::mysql attivamente e trovato ad essere davvero una buona soluzione.

Usiamo il modulo DBI in tutti i nostri progetti.Molte volte possiamo creare un pacchetto personalizzato su di esso per l'applicazione specifica, ma sotto che è il nucleo DBI modulo.E spesso è solo più facile da utilizzare il modulo DBI funzioni direttamente.

DBI è grande, ma la qualità del DBD moduli può variare.Sono stato morso da una 'funzione' in una delle versioni di DBD:pg.È piaciuto per caricare i dati completi del vostro risultato in memoria, piuttosto che interate su di esso con i cursori.

Come al solito - Avvertimento programmor.

DBI rocce!ma per una corretta completo ORM che è veloce andare per DBIx::Class per tutto il tempo.

In sostanza, si dovrebbe essere abituati ad usare solo DBI in primo luogo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top