1. 程式人生 > >SSM報錯Caused by: org.apache.ibatis.binding.BindingException: Parameter 'id' not found

SSM報錯Caused by: org.apache.ibatis.binding.BindingException: Parameter 'id' not found

Mapper.java中
public interface OrderInfoMapper {
List<OrderInfo> getByUser( Long id);
List<OrderInfo> getByUserState(Long id,Integer state);

Mapper.xml中

  <select id="getByUserState"   resultMap="BaseResultMap" >
  SELECT
o.id,
o.start_time,
o.end_time,
o.state,
o.price,
o.money,
o.house_id,
o.user_id,
o.hotel_id,
o.leasemode_id,
o.create_time
FROM
order_info AS o
WHERE
o.user_id =#{id,jdbcType=BIGINT}
AND
o.state=#{state,jdbcType=INTEGER}
  </select>
報錯資訊
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
at com.hangyu.cat.monitor.CatMybatisPlugin.intercept(CatMybatisPlugin.java:69)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy85.query(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:434)
at com.sun.proxy.$Proxy24.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:231)
at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:75)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:53)
at com.sun.proxy.$Proxy40.getByUserState(Unknown Source)
at com.hangyu.mj.service.db.OrderInfoServiceDB.getByUserState(OrderInfoServiceDB.java:60)
at com.hangyu.mj.service.OrderInfoService.getOrderInfoListByState(OrderInfoService.java:53)
at com.hangyu.mj.controller.OrderInfoController.getEntityByState(OrderInfoController.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:308)
at org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:262)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:501)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.ibatis.binding.BindingException: Parameter 'id' not found. Available parameters are [arg1, arg0, param1, param2]
at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:195)
at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)
at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:122)
at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:219)
at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:146)
at com.github.pagehelper.PageInterceptor.intercept(PageInterceptor.java:81)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy85.query(Unknown Source)
... 76 more
解決辦法:
public interface OrderInfoMapper {
List<OrderInfo> getByUser(@Param("id") Long id);
List<OrderInfo> getByUserState(@Param("id") Long id,@Param("state") Integer state);
原因分析:
在沒有加@Param註解時,Mapper中的引數和xml中sql語句的引數沒有對應起來,所以會出現引數未找到的情況,導致執行sql時無法辨識id欄位。
可能的其他原因:
1、mapper介面和mapper.xml是否在同一個包(package)下?名字是否一樣(僅字尾不同)?
2、mapper.xml的名稱空間(namespace)是否跟mapper介面的包名一致?
3、介面的方法名,與xml中的一條sql標籤的id一致
4、如果介面中的返回值List集合(不知道其他集合也是),那麼xml裡面的配置,儘量用resultMap(保證resultMap配置正確),不要用resultType
5、如果你的專案是maven專案,請你在編譯後,到介面所在目錄看一看,因為maven預設是不編譯的,因此,你需要在你的pom.xml的<build></build>裡面,加這麼一段:
<resources>    
         <resource>    
        <directory>src/main/java</directory>    
        <includes>    
            <include>**/*.xml</include>    
        </includes>    
       <filtering>true</filtering>    
   </resource>    
</resources> 

相關推薦

SSMCaused by: org.apache.ibatis.binding.BindingException: Parameter 'id' not found

Mapper.java中 public interface OrderInfoMapper {List<OrderInfo> getByUser( Long id);List<OrderInfo> getByUserState(Long id,Int

Caused by: org.apache.ibatis.binding.BindingException: Parameter 'offset' not found. Available para

Caused by: org.apache.ibatis.binding.BindingException: Parameter ‘offset’ not found. Available parameters are [1, 0, param1, param2

Springboot專案mybatis的錯誤,org.apache.ibatis.binding.BindingException:Parameter 'uid' not found.

在Springboot專案中使用了mybatis作為orm模型,專案中報錯如下: 後經檢查是由於在mybatis生成的Mapper檔案中,使用了spring提供的org.springframework.data.repository.query.Param包,改成or

SpringBoot整合Mybatis註解版---update出現org.apache.ibatis.binding.BindingException: Parameter 'XXX' not found. Available parameters are

SpringBoot整合Mybatis註解版---update時出現的問題 問題描述: 1、sql建表語句 DROP TABLE IF EXISTS `department`; CREATE TABLE `department` ( `id` int(11) NOT NULL AUTO_INCREMEN

org.apache.ibatis.binding.BindingException: Parameter 'idList' not found解決辦法

org.apache.ibatis.binding.BindingException: Parameter ‘idList’ not found解決辦法 問題描述 使用Mybatis查詢資料庫報錯: o

mybatis問題org.apache.ibatis.binding.BindingException: Parameter 'loginId' not found.

Caused by: org.apache.ibatis.binding.BindingException: Parameter 'loginId' not found. Available parameters are [1, 0, param1, param2]

mybatis異常:org.apache.ibatis.binding.BindingException: Parameter 'param' not found. Available param

org.apache.ibatis.binding.BindingException: Parameter 'param' not found. Available parameters are [p

nested exception is org.apache.ibatis.binding.BindingException: Parameter '__frch_item_0' not found

今天在寫mybatis刪除多個條目的時候出現了這個錯誤,傳入的引數是一個集合,Mapper中是這樣的: <delete id="deleteBySelective">

nested exception is org.apache.ibatis.binding.BindingException: Parameter 'XXX' not found

今天遇到mybatis的報錯,搞了好久才搞懂,相信也能解決大部分人的報錯。 報錯資訊如下: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingExc

Spring Boot中報org.apache.ibatis.binding.BindingException: Parameter 'XXXX' not found. Available parameters are [0, 1, param1, param2]的解決辦法

exceptio bin oba quser global 一個 config binding passwd 我這裏的報錯信息顯示: org.apache.ibatis.binding.BindingException: Parameter ‘reqUsername‘ no

題集--org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 解決方法: mapper的namesp

SpringBoot整合Mybatis註解版---update出現org.apache.ibatis.binding.BindingException: Parameter 'XXX' not found. Available parameters are [arg1, arg0,

SpringBoot整合Mybatis註解版---update時出現的問題 問題描述:   1、sql建表語句 DROP TABLE IF EXISTS `department`; CREATE TABLE `department` ( `id` int(11) NOT NULL AUTO_I

org.apache.ibatis.binding.BindingException: Parameter 'Id' not found

異常: org.apache.ibatis.binding.BindingException: Parameter 'Id' not found. Available parameters are [arg1, Id, param1, param2]  解決: 在XXXmapp

org.apache.ibatis.binding.BindingException: Parameter 'idList' not found解決辦法

https://blog.csdn.net/qq_28379809/article/details/83342196  問題描述 使用Mybatis查詢資料庫報錯: org.apache.ibatis.binding.BindingException: Parameter 'i

【spring boot Mybatis】org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.newhope.interview.dao.UserMapper.add

使用 ase err abstract internal tin mic pre uestc 報錯如下: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): c

【ide】MyBatis: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

align basedir schedule ima reflect oda apache ref mapper at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.j

【mybatis】mybatis訪問org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

配置 esp 文件中 map XML 需要 r.java文件 指定 space mybatis訪問報錯:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 需要檢

mycat啟動 Caused by: org.opencloudb.config.util.ConfigException: dataNode node_db01 reference dataHo

環境:mycat 1.5 作業系統:Redhat 6.5 64位 JDK:1.8.0_181 mysql:5.6.35 現象描述:當啟動mycat時,提示: Caused by: org.opencloudb.config.util.ConfigException: dataNode

mybatis-plus呼叫自身的 selectById 方法:org.apache.ibatis.binding.BindingException:

  mybatis-plus的版本號是 2.0.1,在呼叫自身的insert(T)的時候沒有報錯,但是執行update報錯,呼叫selectById、deleteById的時候也報錯。也就是涉及到需要主鍵識別的都報錯。 語句如下:(介面與實現都是MP自己實現的) User

mybatis-plus調用自身的 selectById 方法:org.apache.ibatis.binding.BindingException:

spring ret 分享 img ceshi nbsp 都是 alua tro   mybatis-plus的版本號是 2.0.1,在調用自身的insert(T)的時候沒有報錯,但是執行update報錯,調用selectById、deleteById的時候也報錯。也就是涉