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

2tsiris Messages postés 31 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 11 juin 2006 - 19 mai 2006 à 11:27
cs_nimatik Messages postés 10 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 5 juin 2006 - 5 juin 2006 à 19:33
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

cs_nimatik Messages postés 10 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 5 juin 2006
5 juin 2006 à 19:33
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!!
0
Rejoignez-nous