Bonjour à tous,

je suis débutant en jsp et servlet.

je travaille sur un projet qui permet tracer des graphes à partir des données stockés sur une base de donnée. je dois afficher dans le graphe , dans l'axe des X la date stocké dans la BDD, la date est de format : "2009-03-23 11:05:20" et dans l'axe des Y les valeurs correspondantes pour chaque date.

si quelqu'un a un exemple de ce projet, merci de me le communiquer, car il y 1 mois que je galére sur le sujet.
Pour l'instant ce que j'ai réussi à faire, c'est créer une classe en java qui permet tracer un graphe , mais le soucis que j'ai rencontré , c'est que j'arrive pas à afficher les dates dans l'axe des X .

Voici le code de ma classe 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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package test;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
 
 
public class LineChartTest{
 
public static void main(String arg[]) throws NumberFormatException, SQLException, ClassNotFoundException{
 
 
	String url = "jdbc:mysql://localhost:3306/test";
	String username = "root";
	String password = null ;
	Class.forName("com.mysql.jdbc.Driver");
	Connection con = DriverManager.getConnection(url,username,password);
	Statement stmt = con.createStatement();
 
 
 
		try{
    		Class.forName("com.mysql.jdbc.Driver");
    	}
    	catch (ClassNotFoundException e){
    		System.out.println("Pilote non retrouvé");
    	}
    	try{
    		con= DriverManager.getConnection(url,username,password);
    	}
    	catch(SQLException sqle){System.out.println("Erreur lors de la connexion à la base de données");
 
    	//destroy();
    	}
 
 
 
  XYSeries series = new XYSeries("Valeurs");
 
        try {
 
	       con= DriverManager.getConnection(url,username,password);
	       stmt = con.createStatement();
	    }
	    catch (SQLException sqle){System.out.println("Erreur de requete");}	
 
	    ResultSet rs = (ResultSet) stmt.executeQuery("select * from CPUtest");	
 
	    while(rs.next()){
 
	    	double v1=rs.getDouble("datex");
	    	double v2=rs.getDouble("sample");
	    	series.add(v1,v2);
	    }
	    rs.close();
 
	        /*
	        series.add(rs.getString("datex"),rs1.getString("value1"));
		    series.add(20.0, 20.0);
	        series.add(40.0, 25.0);
	        series.add(55.0, 50.0);
	        series.add(70.0, 65.0);
	        */
 
  XYDataset xyDataset = new XYSeriesCollection(series);
  JFreeChart chart = ChartFactory.createXYLineChart
          ("Moniteur CPU", "value1", "value2",
  xyDataset, PlotOrientation.VERTICAL, true, true, false);
  ChartFrame frame1=new ChartFrame("Moniteur CPU",chart);
  frame1.setVisible(true);
  frame1.setSize(700,400);
  }
}
l'erreur qui m'affiche :

Exception in thread "main" java.sql.SQLException: Bad format for number '2009-03-23 10:16:33' in column 1.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.ResultSet.getDoubleInternal(ResultSet.java:2467)
at com.mysql.jdbc.ResultSet.getDoubleInternal(ResultSet.java:2406)
at com.mysql.jdbc.ResultSet.getDouble(ResultSet.java:2367)
at com.mysql.jdbc.ResultSet.getDouble(ResultSet.java:2385)
at test.LineChartTest.main(LineChartTest.java:61)
le code marche bien pour autre champ que "Datex" (champ dans ma base de donnée qui correspond qu champ Date),(double v1=rs.getDouble("datex").



et aprés je compte transformer cette classe en servlet pour que je puisse la exploité dans une page jsp.

Merci de votre aide.