Ajouter un commentaire

fredericmazue

Quote:
J'ai trouvé sur un autre forum un bout de code qui me paraît intéressant, le voici :

En effet c'est un exemple intéressant de code Java subtilement bugué.
Parce qu'il y a de grandes chances que JBoss utilise un pool de connexion.
Avec un tel code le pool peut s'épuiser très vite. Ou même sans pool le nombre de connexion simultanée permises par la bases peut être dépassé rapidement. Dans ce code tel qu'il est structuré s'il une exception se produit conn.close(); n'est jamais appelé autrement que de temps en temps par le ramasse-miette.
Sur un système chargé ça finira par bloquer.

Il faut *impérativement* structurer le comme ceci

try
{
  // etc...
}
catch
{
// etc...
}
finally
{
  conn.close();
} 

Même, en toute rigueur il faudrait:

// etc...
finally
{
  try
  {
     conn.close();
  }
  catch(SQLException e)
  {
     // 
  } 
}

Hé hé qui a dit que java dispensait le programmeur de la gestion de la mémoire et des ressources :twisted:
Si ça peut te consoler, il y a plein de développeurs Java qui font cette faute :)

Quote:
Si c'est le cas, je ne connaissais pas cette méthode avec des "?"...

Disons que c'est une requête SQL préfabriquée.
Quote:
Partant de ça (qui est peut être faux je n'en sais rien), je dois donc créer une table "temp_table" dans laquelle je stockerai le name du produit et l'image correspondante.

Je déclare le type de ma première colonne comme une String, mais la deuxième colonne ? Comme un int ? C'est là que je coince...


Oui c'est faux. Pourquoi une table temporaire ?
Tu crées une table normale si je puis dire, et le type est un type BLOB puisque c'est de BLOB dont il s'agit. Tu vas bien voir ça dans la documentation de hsqldb

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 RRRR       J  III   AA   L    
R R J I A A L
RRRR J I AAAA L
R R J J I A A L
R RR JJJ III A A LLLL