Creare grafici dalle informazioni su database, grazie a Jfreechart

di: Luca Santaniello     11 Maggio 2009

In questo articolo, analizziamo gli strumenti messi a disposizione dalla libreria JFree-Chart che ci permettono di generare i grafici, acquisendo i dati direttamente dal database. JFreeChart, infatti, prevede una serie di classi wrapper che permettono di organizzare i dati in un formato specifico, compatibile con il motore di rendering della libreria.

Per generare un grafico con la libreria JfreeChart, occorre creare un dataset specifico per la tipologia di grafico che intendiamo creare. Grazie alle classi wrapper poi, non dobbiamo far altro che fornire la connessione al database e la query, che restituisce i dati che ci interessano. Naturalmente la query, deve fornire dei dati compatibili con la classe wrapper che si intende utilizzare.

Le classi wrapper disponibili, sono le seguenti:

  • JDBCPieDataset che permette di generare dataset specifici per la rappresentazione di grafici a torta. La query sql utilizzata per automatizzare la generazione del dataset, deve restituire soltanto due colonne: la prima, contenente dati di tipo VARCHAR indicanti le categorie, la seconda, contenente i valori numerici da rappresentare.
  • JDBCCategoryDataset che permette di generare dataset specifici per la rappresentazione di grafici a barre, con i dati raggruppati in categorie. In questo caso, la query, deve restituire almeno due colonne: la prima, contenente dati di tipo VARCHAR indicanti le categorie, le rimanenti, devono contenere i valori numerici da rappresentare.
  • JDBCXYDataset che permette di generare dataset specifici per la rappresentazione di curve in un classico sistema di assi cartesiani. Anche in questo caso, la query, deve restituire almeno due colonne: la prima, deve contenere i valori numerici da distribuire sull'asse x, le rimanenti, devono contenere i valori numerici da associare ad ogni serie (valori y).

Per capire il funzionamento di queste classi wrapper, esaminiamo qualche esempio pratico.

Ipotizziamo di avere un database MySQL, in cui c'è una tabella ISCRIZIONI, nella quale sono presenti il numero di iscritti per ciascun corso di laurea per ciascun anno accademico.

ANNOCORSO_DI_LAUREAISCRITTI
2005INFORMATICA54
2006INFORMATICA200
2007INFORMATICA200
2008INFORMATICA295
2009INFORMATICA302
2005ARCHITETTURA65
2006ARCHITETTURA134
2007ARCHITETTURA187
2008ARCHITETTURA165
2009ARCHITETTURA202
2005ECONOMIA133
2006ECONOMIA215
2007ECONOMIA199
2008ECONOMIA205
2009ECONOMIA215

Lo script per creare la tabella è il seguente:

CREATE TABLE 'iscritti' (
  'anno' INT( 4 ) NOT NULL ,
  'corso_di_laurea' VARCHAR( 50 ) NOT NULL ,
  'iscritti' INT( 4 ) NOT NULL ,
  PRIMARY KEY ( 'anno' , 'corso_di_laurea' ) 
);

Guide Java

Guida Apache Struts

Il primo e più utilizzato tra i framework MVC del mondo Java,...

Guida Java Spring

Scoprire il lightweight container più famoso del mondo Java....

Guida Java 6

Prendendo le mosse dalla guida Java, già presente su HTML.it,...

Altre guide

Newsletter @Programmazione

Ogni mese, direttamente nella tua e-mail: articoli, script e guide su Java, Visual Basic, VB.Net ed i più diffusi linguaggi di programmazione.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti