2012-05-28 3 views
0

Вот моя таблица (в MySQL):Гистограмма по базе данных

mysql> select device from user_management; 
+--------+ 
| device | 
+--------+ 
| APPLE | 
| HTC | 
| HTC | 
| NOKIA | 
| APPLE | 
| APPLE | 
+--------+ 
6 rows in set (0.00 sec) 

код у меня есть

<% 
String query1 = "select device,count(device) from user_management where device='"+APPLE+"'"; 
JDBCCategoryDataset dataset = new JDBCCategoryDataset("jdbc:mysql://localhost:8080/apps","com.mysql.jdbc.Driver","root","root"); 
dataset.executeQuery(query1); 
System.out.println("query1"); 
JFreeChart chart = ChartFactory.createBarChart3D("Device Statictics","Device","Count",dataset,PlotOrientation.VERTICAL,true,true,false); 
try 
{ 
ChartUtilities.saveChartAsJPEG(new File("D:/dvc.png"),chart,500,400); 
} 
catch(IOException e) 
{ 
System.out.println(".....there is a problem in your chart. "); 
} 
%> 

И на основе имени устройства (APPLE, NOKIA, SAMSUNG) Я хочу создать гистограмму, которая покажет «нет устройства устройства VS». Я хочу показать это на странице jsp.

Любые материалы с вашего сайта будут оценены по достоинству.

+0

Выполнение кода выше, все еще получая исключение: java.io.EOFException: не удается прочитать ответ с сервера. Ожидалось читать 4 байта, читать 0 байт до того, как соединение было неожиданно потеряно. – Tirtha

+0

@Vivekanand: Пожалуйста, обновите свой вопрос кодом. Никто не хочет читать комментарий, содержащий 10 строк кода. – home

+0

У вас есть пробел в URL-адресе JDBC между портом и именем базы данных. – eggyal

ответ

2

В вашем запросе используйте GROUP BY.

SELECT device, count(device) FROM user_management GROUP BY device; 

Используйте запрос, чтобы построить подходящий набор данных из JDBC org.jfree.data.jdbc, а также использовать набор данных, чтобы создать таблицу.

Смежные вопросы