SQL 은 맵 집합 이나 대상 의 동작 을 되 돌려 줍 니 다.

필요:
아래 sql 에서 우 리 는 sum 함수 와 count 함 수 를 되 돌려 야 합 니 다.두 개의 되 돌아 오 는 값 은 표 의 필드 가 아니 기 때문에 여기 서 고려 해 야 할 것 은 제 sql 반환 값 유형 이 무엇 입 니까?
在这里插入图片描述
일상적인 개발 에서 이런 문제 에 부 딪 히 면 우 리 는 먼저 두 가지 반환 값 유형 을 생각 할 것 이다.하 나 는 totalk 과 num 을 key 로 설정 하여 map 에 밀봉 하 는 것 이다.
다른 하 나 는 대상 을 봉인 하고 토 크 와 num 을 이 대상 으로 설정 한 두 구성원 변수 입 니 다.다음은 이 두 가지 방법 을 사용 하여 층 을 나 누 어 개발 하 는 각 층 에서 의 용법 을 설명 합 니 다.
방법 1:대상 을 반환 값 형식 으로 사용 합 니 다.
1.우선 대상 을 봉인
在这里插入图片描述
이 대상 의 num 과 totalk 두 구성원 변 수 를 볼 수 있 습 니 다.바로 우리 sql 문장의 두 개의 반환 값 입 니 다.(totalk 은 sum 함수 의 별명 이 고 num 은 count 함수 의 별명 입 니 다)
2.controller 층
controller 층 에서 이 코드 는 최종 적 으로 위의 sql 문 구 를 사용 하여 데이터 베이스 와 상호작용 을 하 는 것 입 니 다.그의 반환 값 유형 은 RedPackCountBo,즉 우리 가 포장 한 대상 입 니 다.
在这里插入图片描述
3.서비스 계층
service 층 의 반환 값 도 이 대상 이 므 로 군말 하지 않 습 니 다.
在这里插入图片描述
4.serviceImpl 층
在这里插入图片描述
5.mapper.java 층
在这里插入图片描述
6.mapper.xml 층(중점)
在这里插入图片描述
이 방법 을 사용 하면 totalk 과 Num 을 대상 으로 contrller 층 으로 되 돌 릴 수 있 습 니 다.이 두 값 을 사용 해 야 하 는 곳 에서 대상 의 값 을 직접 사용 하여 얻 으 면 됩 니 다.
여기 서 한 가지 더 말씀 드 리 겠 습 니 다.
sql 구문 에 매개 변 수 를 하나 이상 전달 해 야 할 때@param()주 해 를 사용 하거나 map 집합 에 패키지 하여 map 형식 으로 sql 에 전달 할 수 있 습 니 다.저 는 여기 서 모두 세 개의 인 자 를 전 달 했 습 니 다.map 형식 으로 인 자 를 봉 인 했 기 때문에 sql 문장의 parameter Type 은 자바 util.Map 입 니 다.
在这里插入图片描述
방법 2:맵 을 반환 값 형식 으로 사용 합 니 다.
1.controller 층
在这里插入图片描述
2.서비스 층
在这里插入图片描述
3.serviceImpl 층
在这里插入图片描述
4.mapper.java 층
在这里插入图片描述
5.mapper.xml 층
在这里插入图片描述
이런 방법 을 통 해 수 요 를 실현 할 수 있 지만 저 는 개인 적 으로 한 대상(즉 방법 1)을 봉쇄 하 는 것 이 더 시원 하 다 고 생각 합 니 다.왜냐하면 패키지 맵 은 최종 적 으로 필요 한 데이터 형식 이 다 르 기 때문에 일련의 데이터 형식 전환 을 할 수 있 고 자바.lang.classCastException(유형 변환 이상)이 나타 날 수 있 기 때 문 입 니 다.
제 가 맵 을 반환 값 형식 으로 사용 할 때 데이터베이스 에서 되 돌아 오 는 count 함수 값(즉 num)의 데이터 형식 은 Long 형 이 고 sum 함수(즉 total)의 반환 값 유형 은 BigDecimal 형식(Object 의 getClass()방법 으로 데이터 유형 을 볼 수 있 음)입 니 다.그리고 스스로 유형 변환 을 했 습 니 다.
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기