Abaixo segue o código do servlet:
[code]import javax.servlet.;
import javax.servlet.http.;
import java.io.;
import java.util.;
import java.sql.;
import org.jfree.chart.;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
public class C_DiarioLinha extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out1 = response.getWriter();
out1.println("<HTML>");
out1.println("<HEAD>");
out1.println("<TITLE>Corrente Diaria</TITLE>");
out1.println("</HEAD>");
out1.println("<BODY>");
out1.println("<CENTER>");
out1.println("<BR>");
out1.println("<H2>Corrente Diaria</H2>");
out1.println("<BR>");
out1.println("<FORM METHOD=POST>");
out1.println("<Data : >");
out1.println("<INPUT TYPE=TEXT NAME=DataInicio>");;
out1.println("<BR>");
out1.println("<Carga : >");
out1.println("<INPUT TYPE=TEXT NAME=Carga>");
out1.println("<BR>");
out1.println("<Local : >");
out1.println("<INPUT TYPE=TEXT NAME=Local>");
out1.println("<BR>");
out1.println("<INPUT TYPE=SUBMIT VALUE=Consulta>");
out1.println("</FORM>");
out1.println("</CENTER>");
out1.println("</BODY>");
out1.println("</HTML>");
}//fim do get
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
OutputStream out = response.getOutputStream();
//capturando as strings de entrada
String DataInicio = request.getParameter("DataInicio");
String Carga = request.getParameter("Carga");
String Local = request.getParameter("Local");
HttpSession session = request.getSession(true);
String nomeGrafico = "C_DiarioLinha";
session.setAttribute("nomeGrafico1",nomeGrafico);
session.setAttribute("C_DiarioLinha_DataInicio", DataInicio);
session.setAttribute("C_DiarioLinha_Carga", Carga);
//pegando dados
try {
//pegando dados
DefaultCategoryDataset ds = Consulta(DataInicio, Carga, Local);
String Titulo = "Acumulo de carga em "+DataInicio+" em "+Carga;
JFreeChart grafico = ChartFactory.createLineChart(Titulo, "Hora", "Corrente(A)", ds, PlotOrientation.VERTICAL, true, false, false);
response.setContentType("image/png");
ChartUtilities.writeChartAsPNG(out, grafico, 610, 330);
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
}//fim do post
private DefaultCategoryDataset Consulta(String DataInicio, String Carga, String Local) throws ClassNotFoundException{
String JDBC_DRIVER = "com.mysql.jdbc.Driver";
String DATABASE_URL = "jdbc:mysql://ENDEREÇO_IP/BANCO";
DefaultCategoryDataset ds = new DefaultCategoryDataset();
try
{
Class.forName(JDBC_DRIVER);
Connection conn = DriverManager.getConnection(DATABASE_URL,"USUARIO","SENHA");
Statement stm = conn.createStatement();
//prepara a pesquisa
PreparedStatement consultaDiarioA = conn.prepareStatement("select ("+Local+".valor*calibracao.constante) AS valor, HOUR("+Local+".hora) AS hora FROM "+Local+", carga, calibracao" +
" WHERE carga.autocod="+Local+".carga AND calibracao.carga="+Local+".carga AND carga.fase='A' AND "+Local+".data=?" +
" AND carga.nome=? AND "+Local+".hora BETWEEN '00:00:00' AND '23:59:59' GROUP BY HOUR("+Local+".hora)");
PreparedStatement consultaDiarioB = conn.prepareStatement ("select ("+Local+".valor*calibracao.constante) AS valor, HOUR("+Local+".hora) AS hora FROM "+Local+", carga, calibracao" +
" WHERE carga.autocod="+Local+".carga AND calibracao.carga="+Local+".carga AND carga.fase='B' AND "+Local+".data=?" +
" AND carga.nome=? AND "+Local+".hora BETWEEN '00:00:00' AND '23:59:59' GROUP BY HOUR("+Local+".hora)");
PreparedStatement consultaDiarioC = conn.prepareStatement ("select ("+Local+".valor*calibracao.constante) AS valor, HOUR("+Local+".hora) AS hora FROM "+Local+", carga, calibracao" +
" WHERE carga.autocod="+Local+".carga AND calibracao.carga="+Local+".carga AND carga.fase='C' AND "+Local+".data=?" +
" AND carga.nome=? AND "+Local+".hora BETWEEN '00:00:00' AND '23:59:59' GROUP BY HOUR("+Local+".hora)");
//Enviando as Strings
consultaDiarioA.setString(1, DataInicio);
consultaDiarioA.setString(2, Carga);
consultaDiarioB.setString(1, DataInicio);
consultaDiarioB.setString(2, Carga);
consultaDiarioC.setString(1, DataInicio);
consultaDiarioC.setString(2, Carga);
//executando a pesquisa e setando ao ResultSet
ResultSet rsA = consultaDiarioA.executeQuery();
ResultSet rsB = consultaDiarioB.executeQuery();
ResultSet rsC = consultaDiarioC.executeQuery();
while((rsA.next())&&(rsB.next())&&(rsC.next())){
ds.setValue(rsA.getDouble("valor"), "Corrente Fase A", rsA.getString("hora"));
ds.setValue(rsB.getDouble("valor"), "Corrente Fase B", rsA.getString("hora"));
ds.setValue(rsC.getDouble("valor"), "Corrente Fase C", rsA.getString("hora"));
}
return ds;
}//fim do try
catch (SQLException e) {
e.printStackTrace();
}//fim do catch
return ds;
}//fim do Consulta
}[/code]