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
(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 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 }
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; } }
Partager