Problème d'affichage d'une chaine dans un servlet

Messages postés
31
Date d'inscription
jeudi 6 avril 2006
Statut
Membre
Dernière intervention
11 juin 2006
-
Messages postés
10
Date d'inscription
samedi 25 mars 2006
Statut
Membre
Dernière intervention
5 juin 2006
-
Bonjour à tous,


j'ai créer un servlet qui récupère une valeur dans une table mysql.J'ai donc créer une méthode qui se connect à la base et effectue une requete .Puis je met dans un "String" ce dont je récupère de la table et je l'affiche dans le doGet


Mais il me retourne une page ou la valeur de cette chaine est null !!alors que dans la table la valeur est bien présente.


 


Quelqu'un voit-il le problème ???


merci d'avance.


voici le codage :



public class Records_Absolu extends HttpServlet
{
  Connection con= null;
  ResultSet resultats = null;
  String requete = " ";
  String chaine;
   String connection(String mesure)
    {



     try
     {
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
     }catch (ClassNotFoundException e)
     {
       System.out.println("impossible de lancer le pilote ODBC");
     }
    try
    {
      String DBurl="jdbc:odbc:base_julien";
      con= DriverManager.getConnection(DBurl);
    }catch (SQLException e)
    {
      System.out.println ("Connection a la base de donnees impossible");
      System.out.println("Erreur : "+ e.getMessage());
    }
    requete = "SELECT "+mesure+" FROM recordsabsolus";
    try
    {
      Statement stmt = con.createStatement();
      resultats = stmt.executeQuery(requete);
    }catch (SQLException e)
    {
      System.out.println("Anomalie lors de l'execution de la requete");
    }
    try
    {
      ResultSetMetaData rsmd = resultats.getMetaData();
      int nbCols = rsmd.getColumnCount();
      boolean encore = resultats.next();
      while (encore)
      {
        for (int i = 1; i<=nbCols; i++)
        {
          System.out.println("
<t>"+mesure+": "+resultats.getString(i));
          String chaine=("<h1>
<t>"+mesure+": "+resultats.getString(i)+"
");
        }
        encore = resultats.next();
      }
    }
    catch (SQLException e)
    {
      System.out.println (e.getMessage());
    }
    System.out.println("
</html>");
    System.out.close();
    return chaine;
  }



  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
  {
    response.setContentType("text/html");
    PrintWriter out = new PrintWriter (response.getOutputStream());
    String mesure = request.getParameter("mesure");
    out.println("<html>");
    out.println("<head><title>Records Absolu</title></head>");
    out.println("

<center>");
    out.println("voici la chaine retournée :"+chaine);
    out.println("
</center></html>");
    out.close();
    Records_Absolu objet = new Records_Absolu ();
    objet.connection(mesure);
    }
 }

1 réponse

Messages postés
10
Date d'inscription
samedi 25 mars 2006
Statut
Membre
Dernière intervention
5 juin 2006

faut pas faire ca
boolean encore = resultats.next();
      while (encore)

parceque une colection tu l itere 2 fois c est comme partout ds les collection si tu appel 2 fois un next t es au 2 element par contre comme ca je pense que ca doit etre bon 
   while (resultats.next())
a essayer!!