2012-03-14 5 views
1

と、データベースからチャートを生成することは、私のサーブレットのコードです:は、私がここに ... GoogleのチャートAPIからの画像チャートを生成するが、そのべきではない、サーブレットを持っているGoogleのチャートAPI

package Graph; 

public class Graph extends HttpServlet { 

    private static final String DatabaseConnection = null; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public Graph() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
     // TODO Auto-generated method stub 
       OutputStreamWriter writer = new OutputStreamWriter(response.getOutputStream()); 
       System.out.println("SensorGraph"); 

       response.setContentType("text/html"); 
       PrintWriter out = response.getWriter(); 
       //sensor Id 
       String id = request.getParameter("id"); 
       // limit in the query 
       String limit = request.getParameter("limit"); 
       DatabaseConnection db_connection = new DatabaseConnection()._instance; 
       Connection connection = null; 
       try { 
        connection = db_connection.getConnection(); 
       } catch (SQLException e) { 
        e.printStackTrace(); 
       } 
       Statement statement; 
       ResultSet resultSet; 
       try { 
        statement = (Statement) connection.createStatement(); 
        resultSet = statement.executeQuery("select * from Sensor_Entries order by EntryTime asc limit 5)"); 
        String values = ""; 
        while(resultSet.next()) { 
         String value = resultSet.getString("EntryValue"); 
         values += (value) + ","; 
        } 
        System.out.println(values); 
        values = values.substring(0, values.length()-1); 


        String image = "http://chart.apis.google.com/chart?" + 
          "chxr=0,0,1000" + 
          "&chxs=0,676767,12.167,-0.5,l,676767" + 
          "&chxt=y" + 
          "&chs=300x225" + 
          "&cht=ls" + 
          "&chco=3D7930" + 
          "&chds=0,1000" + 
          "&chd=t:" + values+ 
          "&chg=14.3,-1,1,1" + 
          "&chls=2,4,0" + 
          "&chma=0,6%7C3" + 
          "&chm=B,C5D4B5BB,0,0,0" + 
          "&chtt=Sensor+Values" + 
          "&chts=F00D0D,14.5"; 
        if(request.getParameter("img") != null) 
         out.write("<img src=\"" + image + "\" />"); 

        statement = (Statement) connection.createStatement(); 
        resultSet = statement.executeQuery("select * from Sensors join " + 
          "(select * from Sensor_Entries order by EntryTime desc) as Sensor_Entries on " + 
          "(Sensors.SensorID=Sensor_Entries.SensorID) where Sensors.SensorID='" + id + "' " + 
          "group by Sensors.SensorID;"); 

        ResultSetMetaData resultSetMetaData = (ResultSetMetaData) resultSet.getMetaData(); 
        if(resultSet.next()) { 
         writer.write("<table>"); 
         for(int i = 1; i < resultSetMetaData.getColumnCount() + 1; i++) { 
          String value = ""; 
          int type = resultSetMetaData.getColumnType(i); 
          if(type == Types.INTEGER || type == Types.TINYINT) { 
           value = "" + resultSet.getInt(i); 
          } else if(type == Types.VARCHAR) { 
           value = resultSet.getString(i); 
          } else if(type == Types.TIMESTAMP) { 
           value = resultSet.getTimestamp(i).toString(); 
          } else if(type == Types.DOUBLE) { 
           value = "" + resultSet.getDouble(i); 
          } 
          writer.write("<tr>" + 
            "<td>" + resultSetMetaData.getColumnName(i) + "</td>" + 
            "<td>" + value + "</td>" + 
            "</tr>"); 
         } 
         writer.write("</table></center>"); 
        } 
        else 
         out.write(image); 
        out.flush(); 
        out.close(); 
       } catch (SQLException ignored) { ignored.printStackTrace(); } 
      } 

    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     doGet(request, response); 
} 
} 

あなたが助けてもらえ私にこの問題がありますか?私はこのためにganymedeとtomcat 6を使っています... DatabaseConnection db_connection = new DatabaseConnection()._ instance;

+0

Google Chartsはデベロッパーコンソールであらゆる種類のエラーを生成していますか? –

+0

ガニメデ? – Jon

+0

@Jon私は今、インディゴで試したことがありますが、それでも何も生成されませんでした...コンソールにエラーはありません。 – Becks

答えて

0

...この問題は解決されました...グラフのコンストラクタのsuper()は、次のようになりました。必要ありません。これは、グラフの主な問題を解決します...

私は今EntryValuesテーブルからデータを取得し、グラフを再生成するプロセス全体をリフレッシュすることができる必要があります。そのような問題に近づくのですか? ..10秒ごとにリフレッシュしますか? ...私はすでに生成されたgrahpをリフレッシュしようとしていないことに注意してください、私は最終的にグラフ画像を生成するGoogleグラフリンクに値を格納し、10秒ごとにデータを取得したいと思います...

ご支援いただきありがとうございます。誰かがそのような問題に対処しなければならない場合は、できるだけ早くお知らせください...

関連する問題