@Controller
public class ChartController {
@Resource(name = "chartService")
private ChartService chartService;
@RequestMapping("/chart/data.do")
@ResponseBody
public NexacroResult getChartData() {
List<Map<String, Object>> chartList = chartService.selectChartData();
NexacroResult result = new NexacroResult();
result.addDataSet("output", chartList); // Dataset 이름과 일치해야 함
return result;
}
}
public interface ChartService {
List<Map<String, Object>> selectChartData();
}
@Service("chartService")
public class ChartServiceImpl implements ChartService {
@Resource(name = "chartDAO")
private ChartDAO chartDAO;
@Override
public List<Map<String, Object>> selectChartData() {
return chartDAO.selectChartData();
}
}
public interface ChartDAO {
List<Map<String, Object>> selectChartData();
}
@Repository("chartDAO")
public class ChartDAOImpl implements ChartDAO {
@Autowired
private SqlSession sqlSession;
private static final String NAMESPACE = "chartMapper.";
@Override
public List<Map<String, Object>> selectChartData() {
return sqlSession.selectList(NAMESPACE + "selectChartData");
}
}
<select id="selectChartData" resultType="map">
SELECT
MONTH_NAME AS category,
SALES_AMOUNT AS value
FROM SALES_TABLE
ORDER BY MONTH_NO
</select>
resultType="map" → 자동으로 Map 형태로 반환됨| category (문자) | value (숫자) |
|---|---|
| 1월 | 100 |
| 2월 | 120 |
| ... | ... |
넥사크로에서 이 데이터를 그대로 WebBrowser.callMethod()로 넘기면 차트에서 사용 가능해.