使用MyBatis查询int类型字段,返回NULL值时报异常的解决方法
当配置mybatis返回int类型时
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查询 返回类型为int,但是当查询结果为空NULL,会报异常. 例如: <select id="getPersonRecordId" parameterTy ...
 - python 将mysql数据库中的int类型修改为NULL  报1366错误,解决办法
		
gt.run_sql()是用pymysql 封装的类 distribution_sort_id type: int目的:将此字段值全部修改为NULL g=2gt.run_sql("updat ...
 - MyBatis 传一个类型为String的参数时常见问题及解决方法
		
MyBatis要求如果参数为String的话,不管接口方法的形参是什么,在Mapper.xml中引用时需要改变为_parameter才能识别 : <select id="selectB ...
 - 使用like查询text类型字段
		
使用like查询text类型字段 public bool Exists(GetReadType GRT, ClientMessageGetRead TypeID, string MessageID, ...
 - mysql int类型字段插入空字符串时自动转为0
		
mysql int类型字段插入空字符串时自动转为0 如果不想转的话可以修改配置文件 修改 my.ini 文件. # Set the SQL mode to strictsql-mode=”STRICT ...
 - MySqlClient访问tinyint字段返回布尔值
		
原文 MySqlClient访问tinyint字段返回布尔值 症状: 使用MySqlClient访问tinyint unsign 字段返回布尔值 true 和 false,但 ...
 - 面试题:对NotNull字段插入Null值 有啥现象?
		
Hi,大家好!我是白日梦. 今天我要跟你分享的话题是:"对NotNull字段插入Null值有啥现象?" 一. 推荐阅读 首发地址:https://mp.weixin.qq.com/ ...
 - Django 分页查询并返回jsons数据,中文乱码解决方法
		
Django 分页查询并返回jsons数据,中文乱码解决方法 一.引子 Django 分页查询并返回 json ,需要将返回的 queryset 序列化, demo 如下: # coding=UTF- ...
 - 报错NameError: name ‘null’ is not defined的解决方法
		
报错NameError: name 'null' is not defined的解决方法 eval()介绍 eval()函数十分强大,官方demo解释为:将字符串str当成有效的表达式来求值并返回计算 ...
 
随机推荐
- php中抓取网页内容的代码
			
方法一: 使用file_get_contents方法实现 $url = "http://news.sina.com.cn/c/nd/2016-10-23/doc-ifxwztru695114 ...
 - 【Vegas原创】RHEL6.2安装vmtools
			
1,mount虚拟cdrom # mount /dev/cdrom /mnt/cdrom 2, ls一下,看有没有 # cd /mnt/cdrom # ls –l ...
 - oracle中查询某张表都被哪些表参照了
			
起因: 系统测试的时候发现如果某条记录已经被引用了,这个时候删除这条记录会引起数据不一致,系统会报错.比如警员信息,在考勤记录表里会引用警员ID,如果考勤记录表中已经存在这个警员ID了,这时从警员表中 ...
 - C语言代写
			
MTRX1702 - C ProgrammingAssignment 2This assignment requires you to design and build a program that ...
 - Eclipse无法启动报An internal error occurred during: "reload maven project". java.lang.NullPointerException
			
由于没有正常关机导致eclipse无法将数据正常写入配置文件导致无法启动.报这样一个异常 An internal error occurred during: "reload maven p ...
 - (笔记)VC6插件安装--Unable to register this add-in because its DllRegisterServer returns an error
			
在安装插件(如VC6显示行号的插件VC6LineNumberAddin.dll)的时候经常会提示"Unable to register this add-in because its Dl ...
 - Microsoft.CSharp.CSharpCodeProvider
			
Microsoft.CSharp.CSharpCodeProvider MSDN 提供对 C# 代码生成器和代码编译器的实例的访问.类提供可用来检索 C# ICodeGenerator 和 ICode ...
 - Android showing LoadingView or EmptyView for Activity or Fragment
			
这几天利用一些时间,整理了一下,写了一个简单的工具类,用来快速的显示LoadingView或者EmptyView,以前都是定义一个layout,根布局为FrameLayout,再在layout布局文件 ...
 - python 字符串查找
			
python 字符串查找有4个方法,1 find,2 index方法,3 rfind方法,4 rindex方法. 1 find()方法: )##从下标1开始,查找在字符串里第一个出现的子串:返回结果3 ...
 - Django数据模型及操作
			
转自:http://blog.sina.com.cn/s/blog_a73687bc0101cygy.html (一) 初始化测试运行环境 import os; import sys; sys.pat ...