使用MyBatis查询int类型字段,返回NULL值时报异常的解决方法
2016-09-16 22:35
986 查看
当配置mybatis返回int类型时
会报错如下:
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
service层如果需要int数据类型,可以自动从Integer进行转换, 当然有可能加入一些判断,比如Integer为Null,赋给int可以先转成0
工程源码:
http://download.csdn.net/detail/sundongsdu/5851343
select id="getUserIdByName" parameterType="string" resultType="int"> SELECT id FROM user WHERE userName = #{userName} </select>
会报错如下:
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
<?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="com.bill.springMybatis.dao.UserDao"> <cache /> <select id="getUserIdByName" parameterType="string" resultType="Integer"> SELECT id FROM user WHERE userName = #{userName} </select> </mapper>
service层如果需要int数据类型,可以自动从Integer进行转换, 当然有可能加入一些判断,比如Integer为Null,赋给int可以先转成0
工程源码:
http://download.csdn.net/detail/sundongsdu/5851343
相关文章推荐
- 使用MyBatis查询 返回类型为int,但是当查询结果为空NULL,报异常的解决方法
- mybatis查询类型为int的字段,返回null的异常
- 解决mybatis使用char类型字段查询oracle数据库时结果返回null问题
- mybatis查询类型为int的字段,返回null的异常
- mybatis查询类型为int的字段,返回null的异常
- mybatis查询类型为int的字段,返回null的异常
- mybatis查询的返回类型为基础类型(int、long等),但结果为null时的异常解决
- mybatis返回map类型数据空值字段不显示(三种解决方法)
- PDO 查询mysql返回字段int变为String型解决方法
- mybatis返回map类型数据空值字段不显示(三种解决方法)
- mybatis返回map类型数据空值字段不显示(三种解决方法)
- mybatis使用char类型字段查询oracle数据库时结果返回null
- sql中查询类型为int的字段,返回null的异常
- mybatis返回map类型数据空值字段不显示(三种解决方法)
- mybatis返回map类型数据空值字段不显示(三种解决方法)
- mybatis返回map类型数据空值字段不显示(三种解决方法)
- sql中查询类型为int的字段,返回null的异常
- 解决 ”不允许在查询中显式构造实体类型“问题及使用其他方法实现返回 List<Model对象>或者IQueryable<Model对象>对象
- sql中查询类型为int的字段,返回null的异常
- 解决在mybatis中使用CTE进行oracle查询数据类型为long的字段出现流关闭问题