아래와 같이 회원 정보와 매출을 jdbctemplate로 return하려고한다.

여기서 코드는 아래와 같다.

다만 우리는 기존 select에서 별칭으로 count(custno)인 count를 같이 return을 해야 한다.

return시 사용할 RowMapper를 기존과 동일하게 사용할 수 없다.

그러므로 우리가 해야할 것은 다음과 같다.

1. count 별칭을 받을 변수를 VO에 추가

2. custno, custname, grade, count(별칭)을 반환할 RowMapper 클래스를 생성

 

그럼 우선 VO와 getter and setter를 진행하자

 

그다음 두번째 DAO에 custno, custname, grade, count(별칭)을 반환할 RowMapper 클래스를 생성한다.

그런데 여기서 의문? BoardRowMapper에 member.setCount를 추가하면 안되는지? 하고 의문점을 가질 수 있다.

그러나 그렇게 하면 일반 list를 출력할 때 맞지 않으므로 SQL 구문 오류가 발생한다.

그러므로 번거로우더라도 새로운 BoardRowMapper 클래스를 만들어서 추가를 해줘야한다.

위와 같이 추가하고 SQL문도 아래와 같이 작성한 후 memberSale 메소드도 만들어주면

private final String MEMBER_SALE = "select m1.custno, m1.custname, m1.grade, sum(m2.price) as count from member_tbl_02 m1"
			+ " join money_tbl_02 m2 on m1.custno=m2.custno group by m1.custno, m1.custname, m1.grade order by count desc";
            
	public List<MemberVO> memberSale(MemberVO vo){
		System.out.println("===> Spring JDBC접속 memberSale()");
		return jdbcTemplate.query(MEMBER_SALE, new BoardRowMapper1());
	}            

아래와 같이 정상 출력이 될 수 있게되어진다.

+ Recent posts