2010-06-02 9 views
6

Ho appena iniziato a utilizzare MySQL e riesco a vedermi mentre mi sto svegliando con le stringhe! Voglio dire, il compilatore non può rilevare errori come questo ed è solo un casino! C'è un wrapper o qualche tipo di classe che posso aggiungere che faccia qualcosa di semplice come fare una funzione che aggiunge una tabella e chiede argomenti?Come ottenere il controllo del terrore superiore delle query MySQL

Sono sicuro che esiste uno strumento del genere ma non riesco a trovarlo né a conoscerne il nome.

+0

Sì, lavorare con le query SQL ** è ** lavorare con le stringhe. Molto maneggevole. Cosa hai sbagliato per te in questo? –

risposta

4

Stai cercando un Object Relational Mapper. Hibernate è uno dei pionieri in quest'area. JPA è uno standard Java EE nuovo e consolidato in quest'area, formato dal ragazzo dietro Hibernate. Hibernate e EclipseLink offrono implementazioni JPA.

Esistono strumenti IDE per generare automaticamente classi Java basate su modelli di database e viceversa, come ad esempio Hibernate Tools per "good old" Hibernate e Eclipse Dali per JPA.

Se non si desidera utilizzare un ORM e/o non si desidera generare automaticamente gli oggetti del modello, è sufficiente assicurarsi di progettare gli oggetti modello giusti per il modello di database. Cioè utilizzare una proprietà Long per un campo BIGINT, una proprietà BigDecimal per un campo DECIMAL, eccetera. È possibile trovare una panoramica dei mapping predefiniti in this page.

Nel JDBC "plain vanilla" è necessario utilizzare almeno i metodi PreparedStatement per comporre la query SQL anziché concatenare come String. Esistono molti metodi setXXX() per il tipo di dati specifico, ad esempio setLong(), setBigDecimal(), ecc. Lo PreparedStatement non solo facilita l'impostazione di oggetti Java completi come Date e InputStream in una query SQL, ma impedisce anche il codice da SQL injectionattacks. È possibile ottenere ulteriori informazioni su nello Sun JDBC tutorial e trovare un tutorial DAO di base di avvio in this article.

+0

malinconicamente inizio a guardare tutto questo – kalix

1

Dai una prova a JDBC prepared statements.

+0

sembra un semplicistico – kalix

+0

"Dummies" nel titolo della domanda e l'ortografia suggerisce proprio questo. – bakkal

Problemi correlati