Bonjour,
actuellement , j ai 4 applis sous tomcat5, java1.4 . architecture (pool jdbc, beans, servlet, jsp).: j'ai pas me plaindre!

ces derniers temps je voie beaucoup de gens parle de la persistance des donnes, et comment gérer la persistance.
ma façon de faire les choses:
pour chaque table je cree 2 bean: TableBean.java(1) et ListTableBean.java(2)
j utilise le premier comme un pojo, et le deuxieme comme manager du pojo:contient en memoire la liste les pojo(toute les lignes de la table).
pour faire un select juste si une ligne a ete modifie.
j ai jamais eu un problème de saturation mémoire(P4,512Mo Ram, 26 tables,14000 ligne table principale, 7000/an ).

j'ai une autre application qui contient que des jsp et une BD de 55 table, et ça plante de par tout,
c la ou je vous demande de m aider:
j ai 2 options :
1-je le fais a ma facon: j ai le HTML des pages; et je cree les skolette des mes TableBean et ListTableBean sans fichier de mapping juste a l aide du ResultSetMetaData et PrintWriter.println .
Mais reste a savoir si cava pas causer de probleme, -je veux bien que quelqu'un critique ma façon -

2-je me suis dis que c l occasion de passer a java 1.5, alors j ai commencer a voir hibernate3, d ailleur la doc est bien faite :officielle et en .fr svp . mais pour mon cas rapporte pas grande chose .

par contre les EJB3 et ce qu on peut faire avec les @annotation,
et aussi je crois que c facile d implémenter des service web,
mais est ce qu il ya une version JBoss stable prend en charge EJB3.0.

si j ai un service web sous Jboss ejb3, pour la partie client est ce que je dois installer jboss.

et ce que c une bonne idee utiliser Tomcat inside JBossou bien garder Tomcat Standalone;
(
http://www.jboss.com/wiki/Wiki.jsp?page=TomcatStandalonevsEmbedded
,mais ils parlent du Jboss 4.0: compatible ejb.3??)

merci!
------------------------------------

(1)TableBean.java


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
public class TableBean implements java.io.Serializable{
	private String _num;
	private String _table;
// Constructeur pour le chargement
public TableBean(String pnum,String plibele){
	this._num   = pnum;
	this._table   = plibele;
}
// Constructeur pour l ajout
public TableBean(String plibele){
try{
    this._num=Tools.getCodeTable(MoParamBean.getInstance().getProperty(".code.format.table"));
    this._table   = Tools.getFormatPrenom(plibele);
    }catch(Exception e){
    	Log.error("TableBean","TableBean()",e);}
}
 
public String getNum(){	return _num ;}
public String getTable(){return _table;}
public void setTable(String s){	 _table=s;}
 
public boolean add(){
try{
		Log.trace(2,"TableBean","add()","recuperation connextion ?");
		Connection conn = MoApplication.getApplication().getPostgresConnection();
 
		if (conn != null) Log.trace(2,"TableBean","add()","recuperation connextion ok");
		else {Log.trace(2,"TableBean","add()","recuperation connextion ko :("); return false;}
 
		PreparedStatement addSoc = conn.prepareStatement("INSERT INTO table VALUES (?,?)");
 
		addSoc.setString(1, _num);
		Log.trace(2,"TableBean","add() ","IN 1 ="+_num);
		addSoc.setString(2, _table);
		Log.trace(2,"TableBean","add()","IN 2 ="+_table);
 
	    addSoc.executeUpdate();addSoc.close();conn.close();
 
        ListTableBean.remove();//mise a jour de la  liste des table
 
}catch(Exception e){
	Log.trace(0,"TableBean","add()","ERROR = "+e);
	Log.error("TableBean","add() ERROR = ",e);
	return false;
}
return true;
}
 
public boolean modify(){
//comme add();
}
 
public boolean delete(){
//comme add();
}
 
//d autres methode pour les procedures metier
}
(2)ListeTableBean.java

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 
 
public class ListTableBean implements java.io.Serializable {
 
   private  Vector _listTable = null;
   private static ListTableBean _instance =null;
 
public ListTableBean(){
try{
      Vector tmpListAct = new Vector();
      Log.trace(2,"ListTableBean","ListTableBean()","recuperation connextion ?");
      Connection conn = MoApplication.getApplication().getPostgresConnection();
      Statement stmtAllSoc = conn.createStatement();
 
      String sqlAllSoc = "select * from table order by table";
 
      ResultSet rs = stmtAllSoc.executeQuery(sqlAllSoc);
 
     while(rs.next()){
         TableBean tb = new TableBean( rs.getString(1),rs.getString(2));
         tmpListAct.add(tb);
     }
 
    setListTable(tmpListAct);
    rs.close();stmtAllSoc.close();conn.close();
}catch(Exception e){
   Log.trace(0,"ListTableBean","ListTableBean()","ERROR = "+e);
}
}
private void setListTable(Vector pNewVector){
   this._listTable = pNewVector;
}
 
public   Vector getListTable(){
   return _listTable;
}
//get une nouvelle instance si null
public static ListTableBean  getInstance()throws Exception {
   if(_instance == null)
      setInstance(new ListTableBean());
   return _instance;
}
 
public static void setInstance(ListTableBean  newInstance) throws Exception{
            _instance = newInstance;
}
 
public static void  remove()throws Exception {
   _instance = null;
}
//chargement d un objet
public   TableBean getTable(String code)throws Exception{
   TableBean temp;
   for (int i =0 ; i< getListTable().size() ; i++){
          temp = (TableBean)getListTable().elementAt(i);
          if(code.equals(temp.getNum()))
              return temp;
    }
   return null;
   }
}