ybatis가 int 또는 Integer 유형의 오류를 반환하는 해결 방법
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Mapper method 'com.bill.springMybatis.dao.UserDao.getUserIdByName attempted to return null from a method with a primitive return type (int).
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.Java:894)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
반환 형식을 봉인 형식 Integer 또는 기본 형식 int로 설정하면 오류가 발생할 수 있습니다.
예:
<select id="queryPaySum" resultType="java.lang.Integer" parameterType="map" >
select sum(p.CASH_FEE) from PAY_INFO p
where 1=1
and p.TRADE_RESULT_CODE = #{traderesultcode}
</select>
제가 사용하는 Oracle은 nvl() 함수를 이용하여 문제를 해결합니다.
<select id="queryPaySum" resultType="java.lang.Integer" parameterType="map" >
select nvl(sum(p.CASH_FEE), 0) from PAY_INFO p
where 1=1
and p.TRADE_RESULT_CODE = #{traderesultcode}
</select>
보충:다음 항목은 빈 값을 ISNULL(), NVL(), IFNULL() and COALESCE() 함수로 대체합니다.
데이터베이스 작업에서 함수 SUM () 과 같이 검색된 빈 값을 대체하는 경우가 많습니다. 이 함수는 값이 없으면 NULL로 되돌아옵니다. 이것은 우리가 원하지 않는 것입니다.
MySQL에서는 다음과 같이 쓸 수 있습니다.
select IFNULL(sum(data),0) ...
SQLSERVER에서는 다음과 같이 쓸 수 있습니다.
select ISNULL(sum(data),0) ...
Oracle에서는 다음과 같이 쓸 수 있습니다.
select NVL(sum(data),0) ...
모든 데이터베이스에 적용되는 방법은 다음과 같습니다.
select COALESCE(sum(data),0) ...
COALESCE() 사용법:COALESCE(value,...)
첫 번째는null이 아닌 값을 되돌려줍니다. 매개 변수 목록이 모두null이면null을 되돌려줍니다.
sSELECT COALESCE(NULL,1);
-> 1
SELECT COALESCE(NULL,NULL,NULL);
-> NULL
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Mybatis가 키 id를 삽입하는 방법을 되돌려줍니다.mapper의 xml 파일에useGeneratedKeys 구성 KeyProperty를 사용하여 Id로 돌아가면 됩니다. PS: Mybatis의 insert에서 키 ID를 반환하는 방법 1、XyzMapper.xml 또...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.