PDA

View Full Version : [Java]Classe database e operazioni db


RaouL_BennetH
11-09-2007, 12:32
Ciao a tutti :)

Sto tentando di costruirmi una classe generale per la connessione a database mysql e per fare le classiche operazioni di insert, delete, update, select etc...

Ora, per la connessione, dando uno sguardo a diversi esempi in rete, sono riuscito a scrivere del codice che si collega, effettua una semplice select e mi restituisce i dati a video. Come primo esperimentucolo, non è stato particolarmente difficile.

potreste dirmi se per voi può andare bene quanto finora ho fatto?


import java.sql.*;
import java.util.Vector;

public class Database {

private String dbName;
private String userName;
private String userPasswd;
private String errorManager;
private Connection conn;
private boolean connected;


public Database(String dbName, String userName, String userPasswd) {
this.dbName = dbName;
this.userName = userName;
this.userPasswd = userPasswd;
connected = false;
}

public boolean Connection() {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://ip_server:porta/" + dbName + "?user=" + userName + "&password=" + userPasswd);

connected = true;
} catch (Exception e) { errorManager = e.getMessage(); }
return connected;
}

public void CloseConnection() {
try {
conn.Close();
connected = false;
} catch(Exception e) { e.printStackTrace(); }


Attendo con ansia suggerimenti/critiche

Grazie.

Raoul.

PGI-Bis
11-09-2007, 14:32
Perchè nel metodo Connection() (la C minuscola, satanasso! :D) trasformi un'eccezione in un valore restituito?

O te la pappi e non restituisci nulla o la spari verso l'alto. So che tutte quelle parentesi graffe che uno deve mettere sono scomode ma è la lingua che è fatta così. Se proprio non ti piace metterle scrivi un preprocessore.

khamel
12-09-2007, 08:16
Non capisco il senso di far tornare sempre true al metodo Connection()

Nel caso di eccezione il metodo deve tornare false in questo modo quando usi la classe ti puoi accorgere se qualcosa non è andato bene, sopratutto perchè la possibile eccezione che quel metodo scatena la "butti nel cesso" in quella maniera....

Dubito che questo compili dato che jdbc rispetta le Java Code Conventions della sun..


conn.Close();

RaouL_BennetH
12-09-2007, 12:07
Grazie ad entrambi. Ho fatto qualche modifica che fra poco posterò.

@khamel:

perchè quel frammento di codice non dovrebbe compilare?

Grazie mille.

RaouL.

khamel
12-09-2007, 13:01
perchè quel frammento di codice non dovrebbe compilare?

Per la C maiuscola di Close(la convenzione dice che i nomi dei metodi iniziano sempre con la lettera minuscola), ma a dir la verità non uso più jdbc da un pezzo e quindi non mi ricordo di preciso era solo una cosa che mi era saltata all'occhio