今日再开发遇到了这样的一个异常:Expected one result (or null) to be returned by selectOne(), but found: 2
详细的异常信息如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
2017
-
03
-
31
15
:
44
:
24
,
640
ERROR
method
:
com
.
baikeyang
.
bapi
.
modules
.
user
.
service
.
impl
.
LoginServiceImpl
.
login
(
LoginServiceImpl
.
java
:
156
)
-用户登录时发生异常
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
at
org
.
mybatis
.
spring
.
MyBatisExceptionTranslator
.
translateExceptionIfPossible
(
MyBatisExceptionTranslator
.
java
:
76
)
at
org
.
mybatis
.
spring
.
SqlSessionTemplate
$
SqlSessionInterceptor
.
invoke
(
SqlSessionTemplate
.
java
:
399
)
at
com
.
sun
.
proxy
.
$
Proxy13
.
selectOne
(
Unknown
Source
)
at
org
.
mybatis
.
spring
.
SqlSessionTemplate
.
selectOne
(
SqlSessionTemplate
.
java
:
165
)
at
org
.
apache
.
ibatis
.
binding
.
MapperMethod
.
execute
(
MapperMethod
.
java
:
63
)
at
org
.
apache
.
ibatis
.
binding
.
MapperProxy
.
invoke
(
MapperProxy
.
java
:
43
)
at
com
.
sun
.
proxy
.
$
Proxy14
.
selectAlarmCountData
(
Unknown
Source
)
at
com
.
baikeyang
.
bapi
.
modules
.
alarm
.
service
.
impl
.
AlarmServiceImpl
.
getAlarmCountData
(
AlarmServiceImpl
.
java
:
25
)
at
com
.
baikeyang
.
bapi
.
modules
.
user
.
service
.
impl
.
LoginServiceImpl
.
getAlarmCountData
(
LoginServiceImpl
.
java
:
185
)
at
com
.
baikeyang
.
bapi
.
modules
.
user
.
service
.
impl
.
LoginServiceImpl
.
login
(
LoginServiceImpl
.
java
:
131
)
at
com
.
baikeyang
.
bapi
.
web
.
controller
.
LoginController
.
login
(
LoginController
.
java
:
39
)
at
sun
.
reflect
.
GeneratedMethodAccessor103
.
invoke
(
Unknown
Source
)
at
sun
.
reflect
.
DelegatingMethodAccessorImpl
.
invoke
(
DelegatingMethodAccessorImpl
.
java
:
25
)
at
java
.
lang
.
reflect
.
Method
.
invoke
(
Method
.
java
:
597
)
at
org
.
springframework
.
web
.
method
.
support
.
InvocableHandlerMethod
.
doInvoke
(
InvocableHandlerMethod
.
java
:
221
)
at
org
.
springframework
.
web
.
method
.
support
.
InvocableHandlerMethod
.
invokeForRequest
(
InvocableHandlerMethod
.
java
:
137
)
at
org
.
springframework
.
web
.
servlet
.
mvc
.
method
.
annotation
.
ServletInvocableHandlerMethod
.
invokeAndHandle
(
ServletInvocableHandlerMethod
.
java
:
110
)
at
org
.
springframework
.
web
.
servlet
.
mvc
.
method
.
annotation
.
RequestMappingHandlerAdapter
.
invokeHandleMethod
(
RequestMappingHandlerAdapter
.
java
:
776
)
at
org
.
springframework
.
web
.
servlet
.
mvc
.
method
.
annotation
.
RequestMappingHandlerAdapter
.
handleInternal
(
RequestMappingHandlerAdapter
.
java
:
705
)
at
org
.
springframework
.
web
.
servlet
.
mvc
.
method
.
AbstractHandlerMethodAdapter
.
handle
(
AbstractHandlerMethodAdapter
.
java
:
85
)
at
org
.
springframework
.
web
.
servlet
.
DispatcherServlet
.
doDispatch
(
DispatcherServlet
.
java
:
959
)
at
org
.
springframework
.
web
.
servlet
.
DispatcherServlet
.
doService
(
DispatcherServlet
.
java
:
893
)
at
org
.
springframework
.
web
.
servlet
.
FrameworkServlet
.
processRequest
(
FrameworkServlet
.
java
:
967
)
at
org
.
springframework
.
web
.
servlet
.
FrameworkServlet
.
doPost
(
FrameworkServlet
.
java
:
869
)
at
javax
.
servlet
.
http
.
HttpServlet
.
service
(
HttpServlet
.
java
:
643
)
at
org
.
springframework
.
web
.
servlet
.
FrameworkServlet
.
service
(
FrameworkServlet
.
java
:
843
)
at
javax
.
servlet
.
http
.
HttpServlet
.
service
(
HttpServlet
.
java
:
723
)
at
org
.
apache
.
catalina
.
core
.
ApplicationFilterChain
.
internalDoFilter
(
ApplicationFilterChain
.
java
:
290
)
at
org
.
apache
.
catalina
.
core
.
ApplicationFilterChain
.
doFilter
(
ApplicationFilterChain
.
java
:
206
)
at
org
.
springframework
.
web
.
filter
.
HiddenHttpMethodFilter
.
doFilterInternal
(
HiddenHttpMethodFilter
.
java
:
77
)
at
org
.
springframework
.
web
.
filter
.
OncePerRequestFilter
.
doFilter
(
OncePerRequestFilter
.
java
:
107
)
at
org
.
apache
.
catalina
.
core
.
ApplicationFilterChain
.
internalDoFilter
(
ApplicationFilterChain
.
java
:
235
)
at
org
.
apache
.
catalina
.
core
.
ApplicationFilterChain
.
doFilter
(
ApplicationFilterChain
.
java
:
206
)
at
com
.
baikeyang
.
bapi
.
filter
.
MethodFilter
.
doFilter
(
MethodFilter
.
java
:
66
)
at
org
.
apache
.
catalina
.
core
.
ApplicationFilterChain
.
internalDoFilter
(
ApplicationFilterChain
.
java
:
235
)
at
org
.
apache
.
catalina
.
core
.
ApplicationFilterChain
.
doFilter
(
ApplicationFilterChain
.
java
:
206
)
at
org
.
springframework
.
web
.
filter
.
CharacterEncodingFilter
.
doFilterInternal
(
CharacterEncodingFilter
.
java
:
85
)
at
org
.
springframework
.
web
.
filter
.
OncePerRequestFilter
.
doFilter
(
OncePerRequestFilter
.
java
:
107
)
at
org
.
apache
.
catalina
.
core
.
ApplicationFilterChain
.
internalDoFilter
(
ApplicationFilterChain
.
java
:
235
)
at
org
.
apache
.
catalina
.
core
.
ApplicationFilterChain
.
doFilter
(
ApplicationFilterChain
.
java
:
206
)
at
org
.
apache
.
catalina
.
core
.
StandardWrapperValve
.
invoke
(
StandardWrapperValve
.
java
:
233
)
at
org
.
apache
.
catalina
.
core
.
StandardContextValve
.
invoke
(
StandardContextValve
.
java
:
191
)
at
org
.
apache
.
catalina
.
core
.
StandardHostValve
.
invoke
(
StandardHostValve
.
java
:
127
)
at
org
.
apache
.
catalina
.
valves
.
ErrorReportValve
.
invoke
(
ErrorReportValve
.
java
:
103
)
at
org
.
apache
.
catalina
.
core
.
StandardEngineValve
.
invoke
(
StandardEngineValve
.
java
:
109
)
at
org
.
apache
.
catalina
.
connector
.
CoyoteAdapter
.
service
(
CoyoteAdapter
.
java
:
293
)
at
org
.
apache
.
coyote
.
http11
.
Http11AprProcessor
.
process
(
Http11AprProcessor
.
java
:
879
)
at
org
.
apache
.
coyote
.
http11
.
Http11AprProtocol
$
Http11ConnectionHandler
.
process
(
Http11AprProtocol
.
java
:
610
)
at
org
.
apache
.
tomcat
.
util
.
net
.
AprEndpoint
$
Worker
.
run
(
AprEndpoint
.
java
:
1777
)
at
java
.
lang
.
Thread
.
run
(
Thread
.
java
:
662
)
Caused
by
:
org
.
apache
.
ibatis
.
exceptions
.
TooManyResultsException
:
Expected
one
result
(
or
null
)
to
be
returned
by
selectOne
(
)
,
but
found
:
2
at
org
.
apache
.
ibatis
.
session
.
defaults
.
DefaultSqlSession
.
selectOne
(
DefaultSqlSession
.
java
:
66
)
at
sun
.
reflect
.
GeneratedMethodAccessor89
.
invoke
(
Unknown
Source
)
at
sun
.
reflect
.
DelegatingMethodAccessorImpl
.
invoke
(
DelegatingMethodAccessorImpl
.
java
:
25
)
at
java
.
lang
.
reflect
.
Method
.
invoke
(
Method
.
java
:
597
)
at
org
.
mybatis
.
spring
.
SqlSessionTemplate
$
SqlSessionInterceptor
.
invoke
(
SqlSessionTemplate
.
java
:
386
)
.
.
.
48
more
|
从上面的异常信息,可以了解到下面两种情况:
1.你想查询一条数据,但返回两条数据:
2.你想查询多条数据,但是前台限制只能查询一条
(1) 检查自己的数据sql语句写对没有(关于mybaties的sql操作自己百度)
(2) 查看mybaties的返回值(resultType或resultMap),可以返回list,map等数据
(3) dao层接口要与mybaties中返回值和接收值都要保持一致
例:返回map数据
返回多条数据是多个Map,多个Map放在List中用List<Map<String,String>>接收返回数据
Mybatis返回的Map是这样的一种格式:Map<字段名称,字段值>
一个Map<字段名,字段值>对象代表一行数据
原解决方法博文地址:http://www.cnblogs.com/zcleilei/p/6245617.html