LAB7: THỐNGKÊ VỚI JdbcTemplate MỤC TIÊU Kết thúc thực hành này, bạn có khả Thốngkê số liệu Kết hợp vơi Google chart để vẽ biểu đồ MÔ TẢ Nguyễn Nghiệm – nghiemn@fpt.edu.vn Trang LAB7: THỐNGKÊ VỚI JdbcTemplate Hoạt động: Chạy report.htm hiển thị trang web gồm số liệu thốngkê biểu đồ vẽ dựa vào số liệu thốngkê bảng THỰC HIỆN Trong này, bạn phải tạo project có tổ chức sau: Bước 1: Thư viện cấu hình project Bước 2: CSDL Bước 4: Tạo lớp DAO Entity Bước 5: Tạo giao diện Bước 6: Tạo Controller Bước 7: Chạy Nguyễn Nghiệm – nghiemn@fpt.edu.vn Trang LAB7: THỐNGKÊ VỚI JdbcTemplate Bước 1: Thư viện cấu hình project Thư viện Bên cạnh thư viện Thư viện cần thiết cho ứng dụng SQLServerDriver o sqljdbc4.jar JdbcTemplate o commons-dbcp.jar o spring-jdbc-3.2.1.RELEASE.jar o spring-tx-3.2.1.RELEASE.jar Cấu hình Web.xml SpringMVCEmail index.jsp dispatcher org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring-config-*.xml 1 Nguyễn Nghiệm – nghiemn@fpt.edu.vn Trang LAB7: THỐNGKÊ VỚI JdbcTemplate dispatcher *.htm Cấu hình để Spring MVC nạp nhiều file cấu hình: spring-config-*.xml Dấu * đại diện cho nhóm ký tự Cụ thể mvc, gmail upload spring-config-mvc.xml Declare a view resolver > Spring MVC Annotation > Where to find component > Khai báo bean InternalResourceViewResolver để xử lý view Chỉ rõ package tìm kiếm component com.lycato Chỉ rõ ứng dụng Spring phép sử dụng annotation spring-config-jdbc.xml Trong file cấu hình bạn phải khai báo bean BasicDataSource: bean cấu hình thơng số kết nối CSDL JdbcTemplate: bean khai báo đến làm việc với CSDL tiêm vào sử dụng sau ứng dụng Bước 2: CSDL Hình: CSDL Seminar chứa bảng Products Categories Bước 4: Tạo lớp mô tả truy xuất liệu Lớp mô tả liệu (Entity) Report.java package com.lycato.entity; public class Report { String group; Double sum, avg, min, max; Integer count; public String getGroup() { return group; Nguyễn Nghiệm – nghiemn@fpt.edu.vn Trang LAB7: THỐNGKÊ VỚI JdbcTemplate } public void setGroup(String group) { this.group = group; } public Double getSum() { return sum; } public void setSum(Double sum) { this.sum = sum; } public Double getAvg() { return avg; } public void setAvg(Double avg) { this.avg = avg; } public Double getMin() { return min; } public void setMin(Double min) { this.min = min; } public Double getMax() { return max; } public void setMax(Double max) { this.max = max; } public Integer getCount() { return count; } public void setCount(Integer count) { this.count = count; } } Lớp truy xuất liệu (DAO) Lớp chứa phương thức getProductReport() để lấy thơng tin báo cáo hàng hóa Lớp thích @Repository để tiêm vào ReportController ứng dụng @Autowire để sử dụng sau ReportDAO.java package com.lycato.dao; import java.util.List; import import import import import org.springframework.beans.factory.annotation.Autowired; org.springframework.jdbc.core.BeanPropertyRowMapper; org.springframework.jdbc.core.JdbcTemplate; org.springframework.jdbc.core.RowMapper; org.springframework.stereotype.Repository; import com.lycato.entity.Report; @Repository public class ReportDAO{ /** * Inject từ