Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有MyBatis错误的Spring MVC 4。_Java_Spring_Spring Mvc_Mybatis_Ibatis - Fatal编程技术网

Java 带有MyBatis错误的Spring MVC 4。

Java 带有MyBatis错误的Spring MVC 4。,java,spring,spring-mvc,mybatis,ibatis,Java,Spring,Spring Mvc,Mybatis,Ibatis,我用MyBatis创建了SpringMVC4。我确信我的设置是正确的。由于某种原因,我得到了这个错误。谢谢你的帮助 Apr 30, 2015 7:22:56 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [myBatisServlet] in context with path [/APMS] threw exception [Request proces

我用MyBatis创建了SpringMVC4。我确信我的设置是正确的。由于某种原因,我得到了这个错误。谢谢你的帮助

Apr 30, 2015 7:22:56 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [myBatisServlet] in context with path [/APMS] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'one' not found. Available parameters are [0, 1, 2, param5, 3, 4, param3, param4, param1, param2]] with root cause
org.apache.ibatis.binding.BindingException: Parameter 'one' not found. Available parameters are [0, 1, 2, param5, 3, 4, param3, param4, param1, param2]
    at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:165)
    at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:44)
    at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116)
    at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:186)
    at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:129)
    at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:76)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:108)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:102)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:358)
    at com.sun.proxy.$Proxy17.selectList(Unknown Source)
    at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:198)
    at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:119)
    at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:63)
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52)
    at com.sun.proxy.$Proxy30.getResult(Unknown Source)
    at com.gm.app.apms.service.WbbCodeService.getTableResult(WbbCodeService.java:24)
    at com.gm.app.apms.controller.WbbOrderStatusController.getAllOrdersResults(WbbOrderStatusController.java:46)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    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:966)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
    at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1517)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1474)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)
控制器类

package com.gm.app.apms.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.servlet.ModelAndView;

import com.gm.app.apms.model.WbbOrderStatusForm;
import com.gm.app.apms.model.WbbOrderStatusResult;
import com.gm.app.apms.service.IWbbCodeService;

@Controller
@SessionAttributes("wbborderstatusform")
public class WbbOrderStatusController {

    @Autowired
    private IWbbCodeService iWbbCodeService;

    @RequestMapping(value="/viewallorders", method=RequestMethod.POST)
     public ModelAndView getAllOrdersResults  (@ModelAttribute("wbbOrderStatusForm") WbbOrderStatusForm wbbOrderStatusForm) throws Exception
        {
            System.out.println(" I AM HERE");
            String DateFrom = wbbOrderStatusForm.getDateFrom();
            String DateTo = wbbOrderStatusForm.getDateTo();
            String orderType = wbbOrderStatusForm.getOrderType();
            String distCode = wbbOrderStatusForm.getDistCode();
            String packingCode = wbbOrderStatusForm.getPackingCode();

            System.out.println("DateFrom "+DateFrom);
            System.out.println("DateTo "+DateTo);
            System.out.println("orderType "+orderType);
            System.out.println("distCode "+distCode);
            System.out.println("packingCode "+packingCode);

            ModelAndView showresult = new ModelAndView("showresults");
            List <WbbOrderStatusResult> tablelist = new ArrayList<WbbOrderStatusResult>();

            if (!DateFrom.isEmpty() && !DateTo.isEmpty() && !orderType.isEmpty() && !distCode.isEmpty() && !packingCode.isEmpty()){
                tablelist = iWbbCodeService.getTableResult(DateFrom, DateTo, orderType, distCode, packingCode);

                showresult.addObject("tablelist", tablelist);
            }
            return showresult;
        }



      @RequestMapping(value="/viewallorders", method=RequestMethod.GET)
        public String signup(Model model) {
            System.out.println("FIRST PART");
            WbbOrderStatusForm wbbOrderStatusForm = new WbbOrderStatusForm();
            model.addAttribute("wbbOrderStatusForm", wbbOrderStatusForm);
            return "viewallorders";
        }
}
package com.gm.app.apms.mappers;

import java.util.List;

import org.apache.ibatis.annotations.Select;

import com.gm.app.apms.model.WbbOrderStatusResult;

public interface WbbCodeMapper
{
    @Select("SELECT p1.P3ORDRM0.BUYER_ORDR_NO as distOrderNo, p1.P3ORDRM0.ORDR_YEAR||p1.P3ORDRM0.ORDR_CUST_CD||p1.P3ORDRM0.ORDR_TYPE||p1.P3ORDRM0.ORDR_SEQ as gmdatOrderNo, "
            + "p1.P3ORDRM0.CNFM_DT as cnfmDt, p1.P3ORDRM0.PORT_DEST_CD as packingCode, p1.P9ORDRV1.ORDR_ITEM as orderedItem, "
            + "p1.P9ORDRV1.ORDR_QTY as orderedPcs, Round(p1.P9ORDRV1.ORDR_AMT*decode(p1.P3ORDRM0.MULTI_EXCH_RATE,1000,1,p1.P3ORDRM0.MULTI_EXCH_RATE),2) as orderedAmt, "
            + "p1.P9ORDRV1.DSTR_ITEM as allocationItem, p1.P9ORDRV1.DSTR_QTY as allocationPcs, Round(p1.P9ORDRV1.DSTR_AMT*decode(p1.P3ORDRM0.MULTI_EXCH_RATE,1000,1,p1.P3ORDRM0.MULTI_EXCH_RATE),2) as allocationAmt, "
            + "DECODE(p1.P9ORDRV1.ORDR_QTY,0,0,Round((p1.P9ORDRV1.DSTR_QTY / p1.P9ORDRV1.ORDR_QTY )*100,2)) as allocationRate, p1.P9ORDRV1.PICK_ITEM as pickItem, "
            + "p1.P9ORDRV1.PICK_QTY as pickPcs, Round(p1.P9ORDRV1.PICK_AMT*decode(p1.P3ORDRM0.MULTI_EXCH_RATE,1000,1,p1.P3ORDRM0.MULTI_EXCH_RATE),2) as pickAmt, "
            + "DECODE(p1.P9ORDRV1.ORDR_QTY,0,0,Round((p1.P9ORDRV1.PICK_QTY / p1.P9ORDRV1.ORDR_QTY )*100,2)) as pickRate, p1.P9ORDRV1.PACK_ITEM as packItem, "
            + "p1.P9ORDRV1.PACK_QTY as packPcs, Round(p1.P9ORDRV1.PACK_AMT*decode(p1.P3ORDRM0.MULTI_EXCH_RATE,1000,1,p1.P3ORDRM0.MULTI_EXCH_RATE),2) as packAmt, "
            + "DECODE(p1.P9ORDRV1.ORDR_QTY,0,0,Round((p1.P9ORDRV1.PICK_QTY / p1.P9ORDRV1.ORDR_QTY )*100,2)) as packRate, p1.P9ORDRV1.CASE_OUT_ITEM as cargoReadyItem, "
            + "p1.P9ORDRV1.CASE_OUT_QTY as cargoReadyPcs, Round(p1.P9ORDRV1.CASE_OUT_AMT*decode(p1.P3ORDRM0.MULTI_EXCH_RATE,1000,1,p1.P3ORDRM0.MULTI_EXCH_RATE),2) as cargoReadyAmt, "
            + "DECODE(p1.P9ORDRV1.ORDR_QTY,0,0,Round((p1.P9ORDRV1.CASE_OUT_QTY / p1.P9ORDRV1.ORDR_QTY )*100,2)) as cargoReadyRate, p1.P9ORDRV1.SHIP_PEND_ITEM as vanningItem, "
            + "p1.P9ORDRV1.SHIP_PEND_QTY as vanningPcs, Round(p1.P9ORDRV1.SHIP_PEND_AMT*decode(p1.P3ORDRM0.MULTI_EXCH_RATE,1000,1,p1.P3ORDRM0.MULTI_EXCH_RATE),2) as vanningAmt, "
            + "DECODE(p1.P9ORDRV1.ORDR_QTY,0,0,Round((p1.P9ORDRV1.SHIP_PEND_QTY / p1.P9ORDRV1.ORDR_QTY )*100,2)) as vanningRate, p1.P9ORDRV1.SHIP_ITEM as shippedItem, "
            + "p1.P9ORDRV1.SHIP_QTY as shippedPcs, Round(p1.P9ORDRV1.SHIP_AMT*decode(p1.P3ORDRM0.MULTI_EXCH_RATE,1000,1,p1.P3ORDRM0.MULTI_EXCH_RATE),2) as shippedAmt, "
            + "DECODE(p1.P9ORDRV1.ORDR_QTY,0,0,Round((p1.P9ORDRV1.SHIP_QTY / p1.P9ORDRV1.ORDR_QTY )*100,2)) as shippedRate, p1.P9ORDRV1.BACK_ORDR_ITEM as balanceItem, "
            + "p1.P9ORDRV1.BACK_ORDR_QTY as balancePcs, Round(p1.P9ORDRV1.BACK_ORDR_AMT*decode(p1.P3ORDRM0.MULTI_EXCH_RATE,1000,1,p1.P3ORDRM0.MULTI_EXCH_RATE),2) as balanceAmt, "
            + "DECODE(p1.P9ORDRV1.ORDR_QTY,0,0,Round((p1.P9ORDRV1.BACK_ORDR_QTY / p1.P9ORDRV1.ORDR_QTY )*100,2)) as balanceRate, decode(p1.P3ORDRM0.CURR,'KRW','USD',p1.P3ORDRM0.CURR) as cur FROM p1.P3ORDRM0, "
            + "p1.P9ORDRV1 WHERE p1.p3ordrm0.ordr_year = p1.P9ORDRV1.ordr_year(+) AND p1.p3ordrm0.ordr_cust_cd = p1.P9ORDRV1.ordr_cust_cd(+) AND p1.p3ordrm0.ordr_type = p1.P9ORDRV1.ordr_type(+) "
            + "AND p1.p3ordrm0.ordr_seq = p1.P9ORDRV1.ordr_seq (+) "
            + "AND p1.P3ORDRM0.CNFM_DT >= #{one} "
            + "AND p1.P3ORDRM0.CNFM_DT <= #{two} "
            + "AND p1.P3ORDRM0.ORDR_TYPE like '%#{three}%' "
            + "AND p1.P3ORDRM0.ORDR_CUST_CD = '#{four}' "
            + "AND p1.P3ORDRM0.ORDRM0_STAT in ('400','500','700') "
            + "AND p1.P3ORDRM0.PORT_DEST_CD LIKE '%#{five}%';")
    public List <WbbOrderStatusResult> getResult(String one, String two, String three, String four, String five);
}
服务接口

package com.gm.app.apms.service;

import java.util.List;

import com.gm.app.apms.model.WbbOrderStatusResult;

public interface IWbbCodeService
{

    public List<WbbOrderStatusResult> getTableResult(String one, String two, String three, String four, String five);
}
package com.gm.app.apms.service;
导入java.util.List;
导入com.gm.app.apms.model.WbbOrderStatusResult;
公共接口IWbbCodeService
{
公共列表getTableResult(字符串一、字符串二、字符串三、字符串四、字符串五);
}
服务实施

package com.gm.app.apms.service;

import java.util.HashMap;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.gm.app.apms.mappers.StudentMapper;
import com.gm.app.apms.mappers.WbbCodeMapper;
import com.gm.app.apms.model.WbbOrderStatusResult;


@Service("IWbbCodeService")
public class WbbCodeService implements IWbbCodeService
{
    @Autowired
    private WbbCodeMapper wbbCodeMapper;

    @Override
    public List<WbbOrderStatusResult> getTableResult(String one, String two,
            String three, String four, String five) {

        return wbbCodeMapper.getResult(one, two, three, four, five);
    }

}
package com.gm.app.apms.service;
导入java.util.HashMap;
导入java.util.List;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Service;
导入com.gm.app.apms.mappers.StudentMapper;
导入com.gm.app.apms.mappers.WbbCodeMapper;
导入com.gm.app.apms.model.WbbOrderStatusResult;
@服务(“IWbbCodeService”)
公共类WbbCodeService实现IWbbCodeService
{
@自动连线
专用WbbCodeMapper WbbCodeMapper;
@凌驾
公共列表getTableResult(字符串1、字符串2、,
三号线、四号线、五号线){
返回wbbCodeMapper.getResult(一、二、三、四、五);
}
}

解决方案使用@Param注释

public List <WbbOrderStatusResult> getResult(@Param("one")String one, @Param("two")String two, @Param("three")String three, @Param("four")String four, @Param("five")String five);
public List getResult(@Param(“一”)字符串一、@Param(“二”)字符串二、@Param(“三”)字符串三、@Param(“四”)字符串四、@Param(“五”)字符串五);

解决方案使用@Param注释

public List <WbbOrderStatusResult> getResult(@Param("one")String one, @Param("two")String two, @Param("three")String three, @Param("four")String four, @Param("five")String five);
public List getResult(@Param(“一”)字符串一、@Param(“二”)字符串二、@Param(“三”)字符串三、@Param(“四”)字符串四、@Param(“五”)字符串五);

Kothari自己的答案是可行的,但在xml映射中,您可以这样做


{param1,jdbcType=xxx}{param2,jdbcType=xxx}等等……Kothari自己的答案是可行的,但在xml映射中,您可以这样做

{param1,jdbcType=xxx}{param2,jdbcType=xxx}等等。。。。。
public List <WbbOrderStatusResult> getResult(@Param("one")String one, @Param("two")String two, @Param("three")String three, @Param("four")String four, @Param("five")String five);