Backend/jdbc

JfreeChart로 데이터를 시각화 해보자.

IT grow. 2018. 8. 22. 17:12
반응형
package JDBC_Example2;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class BarChart_AWT extends ApplicationFrame {
public BarChart_AWT(String applicationTitle, String chartTitle) {
super(applicationTitle);
JFreeChart barChart = ChartFactory.createBarChart(chartTitle, "ENAME", "Sal", createDataset(), // 도표의 x축과 y축의 이름 설정
PlotOrientation.VERTICAL, true, true, false);
ChartPanel chartPanel = new ChartPanel(barChart);
chartPanel.setPreferredSize(new java.awt.Dimension(560, 367)); // 크기설정
setContentPane(chartPanel);
}
private CategoryDataset createDataset() {
final DefaultCategoryDataset dataset = new DefaultCategoryDataset();
try {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String pass = "tiger";
Connection con = null;
Class.forName(driver);
con = DriverManager.getConnection(url, user, pass);
System.out.println("연결성공");
String sql = "SELECT * FROM EMP WHERE sal>0"; // Sal의 값이 존재하는 컬럼만 추출할 것이다.
PreparedStatement st = con.prepareStatement(sql); // 전송객체를 생성해 준다.
ResultSet rs = st.executeQuery(); // 전송
while (rs.next()) {
System.out.println("ENAME : " + rs.getString("ENAME"));
System.out.println("sal : " + rs.getInt("sal"));
dataset.addValue(rs.getInt("sal"),rs.getString("ENAME"), rs.getString("ENAME"));

// 도표에 sal의 값을 대입 , 막대그래프 ENAME , 막대그래프의 값 ENAME
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
return dataset;
}
public static void main(String[] args) {
BarChart_AWT chart = new BarChart_AWT("Sal", "Who many have Sal?");
chart.pack();
RefineryUtilities.centerFrameOnScreen(chart);
chart.setVisible(true);
}
}


scott 계정에 존재하는 EMP테이블의 sal컬럼의 값들을 시각화 해 볼것이다.


jfreechart를 통해서 도표를 나타내 보았다.


특정 조건의 값만 SELECT를 통해서 추출하고 , 전송객체의 next 존재한다는 가정하에 while문을 돌린다.


while문 안에서는 dataset.addValue 를 통해서 값을 추출한다.


다음은 결과화면이다.



반응형