Voilà, je programme une appli web avec JSP et des classes java, chaque
classe represente une entité de ma base de données, genre la table client a
une classe client. Pour interfacer tout cela avec mes JSP, j'ai créé une
classe intermediaire que je nomme dbHelper, à laquelle je passe des object,
par exemple pour ajouter un client :
instance_dbHelper.InsertClient(instance_client);
Mais, vu que j'ai beaucoup de tables, ce dbHelper devient enorme, donc
j'imagine qu'il va devenir long à instancier, il y a t'il une autre méthode,
sachant que j'hésite à foutre les accès aux bases de données dans les tables
des entités...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JScoobyCed
"Samuel"
Voilà, je programme une appli web avec JSP et des classes java, chaque classe represente une entité de ma base de données, genre la table client a
une classe client. Pour interfacer tout cela avec mes JSP, j'ai créé une classe intermediaire que je nomme dbHelper, à laquelle je passe des object,
par exemple pour ajouter un client :
instance_dbHelper.InsertClient(instance_client);
Mais, vu que j'ai beaucoup de tables, ce dbHelper devient enorme, donc j'imagine qu'il va devenir long à instancier, il y a t'il une autre méthode,
sachant que j'hésite à foutre les accès aux bases de données dans les tables
des entités...
Ben tout ceci se resoud tres simplement: 1. Cree une interface qui contient les signatures des methodes pour recuperer les infos des tes objets (du style getParameters() qui renvoie un tableau/Vector des champs de la table concernee, getValues() qui renvoie un tableau/Vector des valeurs a inserer, etc...) 2. Change tes classes pour qu'elles implementent toutes cette interface (et donc overrider toutes les methodes declarees dans l'interface) 3. Dans l'Object dbHelper, tu ne devrait avoir qu'une methode par action (executeUpdate() ou queryTable() par exemple)
<pseudo-code> public interface DatabaseBean { public String[] getFields(); public String[] getValues(); public String[] getValuesToUpdate(); public String[] getFieldsToUpdate(); public String getTableName(); }
public class Client implements DatabaseBean { public String[] getFields() { return new String[] {"client_id","client_name","client_email","creation_date"}; } public String[] getValues() { /** --- traitement de donnees --- **/ return new String[] {id,name,email,Calendar.getInstance().getDate()}; } public String getTableName() { return "Client"; } ... etc pour toutes les methodes }
public class dbHelper { public void executeInsert(DatabaseBean dbb) { String[] fields = dbb.getFields(); String[] values = dbb.getValues(); String tablename = dbb.getTableName(); String sql = createInsertQuery(fields,values,tablename); executeQuery(sql); }
Voilà, je programme une appli web avec JSP et des classes java, chaque
classe represente une entité de ma base de données, genre la table client
a
une classe client. Pour interfacer tout cela avec mes JSP, j'ai créé une
classe intermediaire que je nomme dbHelper, à laquelle je passe des
object,
par exemple pour ajouter un client :
instance_dbHelper.InsertClient(instance_client);
Mais, vu que j'ai beaucoup de tables, ce dbHelper devient enorme, donc
j'imagine qu'il va devenir long à instancier, il y a t'il une autre
méthode,
sachant que j'hésite à foutre les accès aux bases de données dans les
tables
des entités...
Ben tout ceci se resoud tres simplement:
1. Cree une interface qui contient les signatures des methodes pour
recuperer les infos des tes objets (du style getParameters() qui renvoie un
tableau/Vector des champs de la table concernee, getValues() qui renvoie un
tableau/Vector des valeurs a inserer, etc...)
2. Change tes classes pour qu'elles implementent toutes cette interface (et
donc overrider toutes les methodes declarees dans l'interface)
3. Dans l'Object dbHelper, tu ne devrait avoir qu'une methode par action
(executeUpdate() ou queryTable() par exemple)
<pseudo-code>
public interface DatabaseBean {
public String[] getFields();
public String[] getValues();
public String[] getValuesToUpdate();
public String[] getFieldsToUpdate();
public String getTableName();
}
public class Client implements DatabaseBean {
public String[] getFields() {
return new String[]
{"client_id","client_name","client_email","creation_date"};
}
public String[] getValues() {
/**
--- traitement de donnees ---
**/
return new String[]
{id,name,email,Calendar.getInstance().getDate()};
}
public String getTableName() {
return "Client";
}
... etc pour toutes les methodes
}
public class dbHelper {
public void executeInsert(DatabaseBean dbb) {
String[] fields = dbb.getFields();
String[] values = dbb.getValues();
String tablename = dbb.getTableName();
String sql = createInsertQuery(fields,values,tablename);
executeQuery(sql);
}
Voilà, je programme une appli web avec JSP et des classes java, chaque classe represente une entité de ma base de données, genre la table client a
une classe client. Pour interfacer tout cela avec mes JSP, j'ai créé une classe intermediaire que je nomme dbHelper, à laquelle je passe des object,
par exemple pour ajouter un client :
instance_dbHelper.InsertClient(instance_client);
Mais, vu que j'ai beaucoup de tables, ce dbHelper devient enorme, donc j'imagine qu'il va devenir long à instancier, il y a t'il une autre méthode,
sachant que j'hésite à foutre les accès aux bases de données dans les tables
des entités...
Ben tout ceci se resoud tres simplement: 1. Cree une interface qui contient les signatures des methodes pour recuperer les infos des tes objets (du style getParameters() qui renvoie un tableau/Vector des champs de la table concernee, getValues() qui renvoie un tableau/Vector des valeurs a inserer, etc...) 2. Change tes classes pour qu'elles implementent toutes cette interface (et donc overrider toutes les methodes declarees dans l'interface) 3. Dans l'Object dbHelper, tu ne devrait avoir qu'une methode par action (executeUpdate() ou queryTable() par exemple)
<pseudo-code> public interface DatabaseBean { public String[] getFields(); public String[] getValues(); public String[] getValuesToUpdate(); public String[] getFieldsToUpdate(); public String getTableName(); }
public class Client implements DatabaseBean { public String[] getFields() { return new String[] {"client_id","client_name","client_email","creation_date"}; } public String[] getValues() { /** --- traitement de donnees --- **/ return new String[] {id,name,email,Calendar.getInstance().getDate()}; } public String getTableName() { return "Client"; } ... etc pour toutes les methodes }
public class dbHelper { public void executeInsert(DatabaseBean dbb) { String[] fields = dbb.getFields(); String[] values = dbb.getValues(); String tablename = dbb.getTableName(); String sql = createInsertQuery(fields,values,tablename); executeQuery(sql); }
Voilà, je programme une appli web avec JSP et des classes java, chaque classe represente une entité de ma base de données, genre la table client a une classe client. Pour interfacer tout cela avec mes JSP, j'ai créé une classe intermediaire que je nomme dbHelper, à laquelle je passe des object, par exemple pour ajouter un client :
instance_dbHelper.InsertClient(instance_client);
Mais, vu que j'ai beaucoup de tables, ce dbHelper devient enorme, donc j'imagine qu'il va devenir long à instancier, il y a t'il une autre méthode, sachant que j'hésite à foutre les accès aux bases de données dans les tables des entités...
J'espère avoir été clair,
Merci d'avance,
je vous embrasse :-)
Samos
Salut,
Tu peux également regarder ce que donne Hibernate qui gère pour toi ce que fait actuellement ta classe dbHelper.
-> http://www.hibernate.org/
A+, Nico.
Samuel wrote:
Salut tout le monde,
Voilà, je programme une appli web avec JSP et des classes java, chaque
classe represente une entité de ma base de données, genre la table client a
une classe client. Pour interfacer tout cela avec mes JSP, j'ai créé une
classe intermediaire que je nomme dbHelper, à laquelle je passe des object,
par exemple pour ajouter un client :
instance_dbHelper.InsertClient(instance_client);
Mais, vu que j'ai beaucoup de tables, ce dbHelper devient enorme, donc
j'imagine qu'il va devenir long à instancier, il y a t'il une autre méthode,
sachant que j'hésite à foutre les accès aux bases de données dans les tables
des entités...
J'espère avoir été clair,
Merci d'avance,
je vous embrasse :-)
Samos
Salut,
Tu peux également regarder ce que donne Hibernate qui gère pour toi
ce que fait actuellement ta classe dbHelper.
Voilà, je programme une appli web avec JSP et des classes java, chaque classe represente une entité de ma base de données, genre la table client a une classe client. Pour interfacer tout cela avec mes JSP, j'ai créé une classe intermediaire que je nomme dbHelper, à laquelle je passe des object, par exemple pour ajouter un client :
instance_dbHelper.InsertClient(instance_client);
Mais, vu que j'ai beaucoup de tables, ce dbHelper devient enorme, donc j'imagine qu'il va devenir long à instancier, il y a t'il une autre méthode, sachant que j'hésite à foutre les accès aux bases de données dans les tables des entités...
J'espère avoir été clair,
Merci d'avance,
je vous embrasse :-)
Samos
Salut,
Tu peux également regarder ce que donne Hibernate qui gère pour toi ce que fait actuellement ta classe dbHelper.