반응형
service 폴더안에 impl폴더안에 WelcomeWebMapper라는 인터페이스를 만든다.
1 2 3 4 | @Mapper("welcomeWebMapper") public interface WelcomeWebMapper { List<Map> selectWelcomeWebServiceList() throws Exception; } | cs |
이렇게 함수머리만 선언한다. 이 함수는 디비에서 값을 가져오는 함수이다. 저렇게 일단 놔두고 WelcomeWebServiceImp로 가자. 서비스 임플은 나중에 트랜잭션까지 관리하게 된다. 어노테이션도 맵퍼로 조져준다.
1 2 3 4 5 6 7 8 9 10 | @Service("welcomeWebService") public class WelcomeWebServiceImpl extends EgovAbstractServiceImpl implements WelcomeWebService{ @Resource(name="welcomeWebMapper") private WelcomeWebMapper welcomeWebMapper; public List<Map> selectWelcomeServiceList() throws Exception { return welcomeWebMapper.selectWelcomeWebServiceList(); } } |
아까 만든 맵퍼를 추가해준다. 오타가 나기 쉬우므로 복사해서 붙여넣는 식으로 변수를 만들자.
line 8 은 아까 맵퍼에서 선언한 함수를 쓴다.
cf) Controller->Service->Impl->Mapper->sql 로 흐름이 이어지고 sql에서 데이터를 받은 후 다시 거꾸로 거슬러 올라가는 연어처럼 되돌아간다.
쿼리문 맵퍼등록을 해야 한다.
그리고 resources/egovframework/sqlmap/example/mappers 로 가보자.
mappers폴더에 WelcomeWeb_SQL.xml을 위에 샘플 파일을 복사해서 만들고 이름만 바꾸자.
그리고 안에 <mapper> 태그가 있을 것이다. 안에 내용을 모두 지우자. 그리고
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="egovframework.example.welcomeWeb.service.impl.WelcomeWebMapper"> <!-- 메인 조회 --> <select id="selectWelcomeWebServiceList" resultType="egovMap"> SELECT ID, USER_NAME, AGE, COUNTRY, ETC FROM welcome_web </select> <select id="selectPieChartList" resultType="egovMap"> SELECT ROUND(A.CNT/(SELECT count(*) TOTCNT FROM welcome_web)*100) AS PERCENT , COUNTRY FROM (SELECT count(COUNTRY) as CNT, COUNTRY FROM welcome_web group by COUNTRY) A </select> </mapper> | cs |
셀렉트 구문들을 추가하자. 이것이 Mybatis이다. 중요한 것은 위에 mapper 네임스페이스 형광펜 부분을 보자. 아까 만든 서비스단에서 맵퍼를 호출하도록 만들었으니 그 맵퍼의 경로를 적어준다. 확인하는 방법은 ctrl키를 누른후 저 경로를 클릭해보자. 맵퍼로 이동이 된다면 제대로 등록한 것이다.
그리고 이 xml파일의 id값이 아까 맵퍼 인터페이스의 함수명과 같아야한다. 그래야 맵핑이 된다.
안에 쿼리는 맘대로 쓰고 오라클에 데이터를 만들자.
서비스를 다시한번 보자.
1 2 3 4 5 6 7 | public interface WelcomeWebService { List<Map> selectWelcomeServiceList() throws Exception; // 표 리스트 받아오는 동작 List<Map> selectPieChartList() throws Exception; // 차트 받아오는 동작 } | cs |
밑에 함수 추가 되었는데 뭐 기능에 따라 더 있을수도 있고 없을수도 있는 숫자이다.
밑에는 완성된 컨트롤러의 모습이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | @Controller public class WelcomeWebController { @Resource(name="welcomeWebService") private WelcomeWebService welcomeWebService; @RequestMapping(value="welcomeWeb.do") public String initWelcomeWeb(ModelMap model) throws Exception { // 표의 정보를 요청한다. List<Map> welcomeWebList = welcomeWebService.selectWelcomeServiceList(); List<Map> pieChart = welcomeWebService.selectPieChartList(); model.addAttribute("welcomeWebList", welcomeWebList); model.addAttribute("pieChartList", pieChart); return "welcomeWeb/welcomeWeb.tiles"; } } | cs |
추가하는 함수에 따라 맵퍼에도 함수를 정의한다.
마지막으로 welcomeWeb.jsp를 정의한다.
그리고 돌려보면 페이지가 나오게 된다. 오타와 패키지 구조에 조심하자.
반응형
'프로그래밍 > 전자정부프레임워크(eGov)' 카테고리의 다른 글
타일즈흐름과 데이터베이스 조회 (2) (0) | 2017.02.12 |
---|---|
타일즈흐름과 데이터베이스 조회 (1) (0) | 2017.02.12 |
레프트 메뉴 추가 후 서비스단을 만들어보자! - (2) (0) | 2017.01.22 |
레프트 메뉴 추가 후 서비스단을 만들어 보자! - (1) (0) | 2017.01.22 |
나도 전자정부프레임워크에 부트스트랩 적용해보자! (4) (0) | 2017.01.15 |