描述:完整异常信息如下:
org.mybatis.spring.MyBatisSystemException:
nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
大概就是说,预期会有一个结果返回,但是实际上返回了两个结果。
这个问题出现在mapper.xml中,编写select语句的时候,里面的resultType属性,根据具体的需要会设置返回的类型,比如回显某一行数据的值(如编辑数据操作时),就写成那条数据对应的javabean,如果有多条数据返回的时候,若返回值类型为javabean,则会出现这种异常信息。
总结:这个问题,是在做注册时,需要判断手机号是否已经存在,若存在,则给用户提示“该手机号已存在”。由于数据库中已经存在多行数据的手机号是相同的,并且mapper.xml中reslutType写的是javabean,因此造成这种异常。