DB연동이 된 Chart(표) 사용하기 [막대그래프,ColumnChart]

2019. 4. 3. 14:19JavaScript

#MemberDao.java 에서의 메소드 추가

// 그룹주소에 해당하는 카운트 메소드

public JSONArray getCountAddress() {

Connection con = null;

PreparedStatement pstmt = null;

ResultSet rs = null;

String sql = "";

JSONArray jsonArray = new JSONArray();

 

JSONArray colNameArray = new JSONArray(); // 컬 타이틀 설정

colNameArray.add("주소");

colNameArray.add("인원수");

jsonArray.add(colNameArray);

 

try {

con = H2DBUtil.getConnection();

sql = "SELECT address,COUNT(*) AS cnt FROM member GROUP BY address ORDER BY cnt ";

pstmt = con.prepareStatement(sql);

rs = pstmt.executeQuery();

 

while(rs.next()){

JSONArray rowArray = new JSONArray();

rowArray.add(rs.getString("address"));

rowArray.add(rs.getInt("cnt"));

 

jsonArray.add(rowArray);

}//while

} catch (Exception e) {

e.printStackTrace();

}finally {

H2DBUtil.closeJDBC(con, pstmt, rs);

}

return jsonArray;

}//getCountAddress

 

#JSP에서의 출력 

<%@page import="org.json.simple.JSONArray"%>

<%@page import="dao.MemberDao"%>

<%@ page language="java" contentType="application/json; charset=UTF-8"

pageEncoding="UTF-8"%>

<%

MemberDao memberDao = MemberDao.getInstance();

JSONArray jsonArray = memberDao.getCountAddress();

//out.println(jsonArray);

%>

<%= jsonArray %>

 

#HTML에서의 출력 

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>ColumnChart1</title>

<script src="../js/jquery-3.3.1.min.js"></script>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<script src="https://www.gstatic.com/charts/loader.js"></script>

<script>

//구글 시각화 API를 로딩하는 메소드

google.charts.load('current', {packages: ['corechart']});

 

// 구글 시각화 API가 로딩이 완료되면,

// 인자로 전달된 콜백함수를 내부적으로 호출하여 차트를 그리는 메소드

// 화면이 실행될때 함께 실행된다.

// google.charts.setOnLoadCallback(drawChart);

 

 

/* 30초마다 재갱신

google.charts.setOnLoadCallback(function(){

setInterval(columnChart1(),30000);

 

}); */

 

// 묶은 세로 막대형 차트 1

function columnChart1(arrayList) {

// 실 데이터를 가진 데이터테이블 객체를 반환하는 메소드

var dataTable = google.visualization.arrayToDataTable(arrayList);

// 옵션객체 준비

var options = {

title: '거주지 별 인원수',

hAxis: {

title: '거주지',

titleTextStyle: {

color: 'red'

}

}

};

// 차트를 그릴 영역인 div 객체를 가져옴

var objDiv = document.getElementById('column_chart_div1');

// 인자로 전달한 div 객체의 영역에 컬럼차트를 그릴수 있는 차트객체를 반환

var chart = new google.visualization.ColumnChart(objDiv);

// 차트객체에 데이터테이블과 옵션 객체를 인자로 전달하여 차트 그리는 메소드

chart.draw(dataTable, options);

} // drawColumnChart1()의 끝

 

// 버튼 동작

$(document).ready(function(){

$('button').on('click', function(){

$.ajax({

url:'columnChart1.jsp',

success:function(result){

columnChart1(result);

}

});

});

});

</script>

</head>

<body>

<button type="button" id="btn">버튼</button>

<div id="column_chart_div1" style="width: 900px; height: 500px;"></div>

</body>

</html>

'JavaScript' 카테고리의 다른 글

이메일 전송하기(파일 첨부기능)  (0) 2019.04.04
이메일 전송하기  (0) 2019.04.04
Chart(표) 사용하기 [막대그래프,ColumnChart]  (0) 2019.04.03
JSON 의 DB연동(AJAX 사용)  (0) 2019.04.03
jQuery 적용하기  (0) 2019.03.27