2013-01-08 53 views
8

我有许多问题与春天e mybatis。这是我的弹簧配置: 我具有相同的配置,并且ComuneMapper.java和ComuneMapper.xml保留在相同的文件夹中。但我却这个错误 有人来帮助meeeeemybatis IllegalArgumentException:映射语句集合不包含值

<?xml version="1.0" encoding="UTF-8"?> 
<beans 
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:webflow="http://www.springframework.org/schema/webflow-config" 
    xmlns:util="http://www.springframework.org/schema/util" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
     http://www.springframework.org/schema/aop 
     http://www.springframework.org/schema/aop/spring-aop-2.5.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-2.5.xsd 
     http://www.springframework.org/schema/webflow-config 
     http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.0.xsd 
     http://www.springframework.org/schema/util 
     http://www.springframework.org/schema/util/spring-util-2.0.xsd 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 

    <context:annotation-config /> 

    <!-- Scans the classpath of this application for @Components to deploy as beans --> 
    <context:component-scan 
     base-package="com.aieap" /> 

    <!-- Configures the @Controller programming model --> 
    <mvc:annotation-driven /> 


    <!-- Configurazione Spring MVC View Resolver --> 
    <bean 
     id="viewResolver" 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property 
      name="viewClass" 
      value="org.springframework.web.servlet.view.JstlView" /> 
     <property 
      name="prefix" 
      value="/jsp/" /> 
     <property 
      name="suffix" 
      value=".jsp" /> 
    </bean> 

    <!-- Flow Handler Adapter --> 
    <bean 
     class="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter"> 
     <property 
      name="flowExecutor" 
      ref="flowExecutor" /> 
    </bean> 

    <!-- Flow Handler Mapping --> 
    <bean 
     class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping"> 
     <property 
      name="flowRegistry" 
      ref="flowRegistry" /> 
    </bean> 

    <!-- Flow Executor --> 
    <webflow:flow-executor 
     id="flowExecutor" /> 

    <!-- Flow Registry --> 
    <webflow:flow-registry 
     id="flowRegistry" 
     flow-builder-services="flowBuilderServices"> 
     <!-- nonaut --> 
     <webflow:flow-location 
      id="home-nonaut" 
      path="/WEB-INF/flows/nonaut/home-nonaut.xml" /> 
     <webflow:flow-location 
      id="logout" 
      path="/WEB-INF/flows/nonaut/logout.xml" /> 

     <!-- aut --> 
     <webflow:flow-location 
      id="aut/home-aut" 
      path="/WEB-INF/flows/aut/home-aut.xml" /> 
     <webflow:flow-location 
      id="aut/nuova-domanda" 
      path="/WEB-INF/flows/aut/nuova-domanda.xml" /> 
     <webflow:flow-location 
      id="aut/invia-domanda" 
      path="/WEB-INF/flows/aut/invia-domanda.xml" /> 
     <webflow:flow-location 
      id="aut/nuovo-operatore-rer" 
      path="/WEB-INF/flows/aut/nuovo-operatore-rer.xml" /> 

    </webflow:flow-registry> 

    <webflow:flow-builder-services 
     id="flowBuilderServices" 
     view-factory-creator="viewFactoryCreator" /> 

    <bean 
     id="viewFactoryCreator" 
     class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator"> 
     <property 
      name="viewResolvers"> 
      <list> 
       <ref 
        bean="viewResolver" /> 
      </list> 
     </property> 
     <property 
      name="useSpringBeanBinding" 
      value="true" /> 
    </bean> 

    <import resource="jdbc-context.xml" /> 


</beans> 

JDBC-context.xm:

<?xml version="1.0" encoding="UTF-8"?> 
<beans 
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation=" 
      http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
      http://www.springframework.org/schema/tx 
      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
      http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context-3.0.xsd 
      "> 

    <context:property-placeholder 
     location="/WEB-INF/db.properties" /> 

    <!-- Enable annotation style of managing transactions --> 
    <tx:annotation-driven 
     transaction-manager="transactionManager" /> 

    <!-- Declare a datasource that has pooling capabilities --> 
    <bean 
     id="dataSource" 
     class="com.mchange.v2.c3p0.ComboPooledDataSource" 
     destroy-method="close" 
     p:driverClass="${jdbc.driver}" 
     p:jdbcUrl="${jdbc.url}" 
     p:user="${jdbc.username}" 
     p:password="$jdbc.password}" 
     p:acquireIncrement="10" 
     p:idleConnectionTestPeriod="60" 
     p:maxPoolSize="100" 
     p:maxStatements="50" 
     p:minPoolSize="10" /> 

    <!-- Declare a transaction manager --> 
    <bean 
     id="transactionManager" 
     class="org.springframework.jdbc.datasource.DataSourceTransactionManager" 
     p:dataSource-ref="dataSource" /> 


    <!-- define the SqlSessionFactory, notice that configLocation is not needed when you use MapperFactoryBean --> 
    <bean 
     id="sqlSessionFactory" 
     class="org.mybatis.spring.SqlSessionFactoryBean"> 
     <property 
      name="dataSource" 
      ref="dataSource" /> 
     <property 
      name="configLocation" 
      value="WEB-INF/mybatis/sqlmap-config.xml" /> 
    </bean> 

    <!-- scan for mappers and will automatically scan the whole classpath for xmls --> 
    <bean 
     class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
     <property name="sqlSessionFactory" ref="sqlSessionFactory" /> 
     <property name="basePackage" value="com.aieap.dao.mapper" /> 
    </bean> 

</beans> 

的SqlMap-config.xml中:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE configuration 
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-config.dtd"> 

<configuration> 
    <settings> 
     <!-- changes from the defaults --> 
     <setting name="lazyLoadingEnabled" value="false" /> 
    </settings> 
    <typeAliases> 
     <typeAlias type="com.aieap.model.Comuni" alias="comuni"/> 
    </typeAliases> 
</configuration> 

控制器:

package com.aieap.web.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.ModelMap; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.apache.log4j.Logger; 

import com.aieap.dao.mapper.ComuniMapper; 
import com.aieap.model.Comuni; 
import com.aieap.model.OperatoriRer; 

@Controller 
public class OperatoriRerController { 

    @Autowired ComuniMapper comuniDao; 


    private static final Logger logger = Logger.getLogger(OperatoriRerController.class); 



    @RequestMapping("/aut/nuovo-operatore-rer") 
     public ModelMap start() { 

     Comuni comuni = comuniDao.selectByPrimaryKey(new Long(1)); 
     System.out.print(comuni); 
     OperatoriRer op = new OperatoriRer(); 
     op.setNome("ciccio"); 
     op.setCognome("cappuccio"); 
     ModelMap model = new ModelMap(); 
     model.addAttribute("OperatoriRer",op); 
     return model; 
     } 


    @RequestMapping("/aut/search-comune") 
     public ModelMap searchcomune() { 
     List<Comuni> comuniList = new ArrayList <Comuni>() ;   
     ModelMap model = new ModelMap(); 
     model.addAttribute("ComunuList",comuniList); 
     return model; 
     } 
} 

这是错误:

GRAVE: Servlet.service() for servlet [dispatch] in context with path [/aieap] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.aieap.dao.mapper.ComuniMapper.selectByPrimaryKey] with root cause 
java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.aieap.dao.mapper.ComuniMapper.selectByPrimaryKey 
    at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:593) 
    at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:393) 
    at org.apache.ibatis.binding.MapperMethod.setupCommandType(MapperMethod.java:160) 
    at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:48) 
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:37) 
    at $Proxy9.selectByPrimaryKey(Unknown Source) 
    at com.aieap.web.controller.OperatoriRerController.start(OperatoriRerController.java:29) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:746) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:687) 
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 

请!有人帮助我我绝望!!!!!!!!!!!!!!!

我忘记了。 这是ComuniMapper.java

package com.aieap.dao.mapper; 

import com.aieap.model.Comuni; 
import com.aieap.model.ComuniExample; 
import java.util.List; 
import org.apache.ibatis.annotations.Param; 

public interface ComuniMapper { 

    int countByExample(ComuniExample example); 
    int deleteByExample(ComuniExample example); 
    int deleteByPrimaryKey(Long idComune); 
    int insert(Comuni record); 
    int insertSelective(Comuni record); 
    List<Comuni> selectByExample(ComuniExample example); 
    Comuni selectByPrimaryKey(Long idComune); 

    /** 
    * This method was generated by MyBatis Generator. 
    * This method corresponds to the database table comuni 
    * 
    * @mbggenerated Tue Jan 08 16:52:16 CET 2013 
    */ 
    int updateByExampleSelective(@Param("record") Comuni record, @Param("example") ComuniExample example); 

    /** 
    * This method was generated by MyBatis Generator. 
    * This method corresponds to the database table comuni 
    * 
    * @mbggenerated Tue Jan 08 16:52:16 CET 2013 
    */ 
    int updateByExample(@Param("record") Comuni record, @Param("example") ComuniExample example); 

    /** 
    * This method was generated by MyBatis Generator. 
    * This method corresponds to the database table comuni 
    * 
    * @mbggenerated Tue Jan 08 16:52:16 CET 2013 
    */ 
    int updateByPrimaryKeySelective(Comuni record); 

    /** 
    * This method was generated by MyBatis Generator. 
    * This method corresponds to the database table comuni 
    * 
    * @mbggenerated Tue Jan 08 16:52:16 CET 2013 
    */ 
    int updateByPrimaryKey(Comuni record); 
} 

月底ComuniMapper.xml:

<?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.aieap.dao.mapper.ComuniMapper" > 
    <resultMap id="BaseResultMap" type="com.aieap.model.Comuni" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    <id column="ID_COMUNE" property="idComune" jdbcType="BIGINT" /> 
    <result column="CODICE_ISTAT" property="codiceIstat" jdbcType="VARCHAR" /> 
    <result column="DESCRIZIONE" property="descrizione" jdbcType="VARCHAR" /> 
    <result column="CAP" property="cap" jdbcType="VARCHAR" /> 
    <result column="CODICE_PROVINCIA" property="codiceProvincia" jdbcType="BIGINT" /> 
    <result column="COMUNE_SIGLA" property="comuneSigla" jdbcType="VARCHAR" /> 
    <result column="COMUNE_CFIS" property="comuneCfis" jdbcType="VARCHAR" /> 
    </resultMap> 
    <sql id="Example_Where_Clause" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    <where > 
     <foreach collection="oredCriteria" item="criteria" separator="or" > 
     <if test="criteria.valid" > 
      <trim prefix="(" suffix=")" prefixOverrides="and" > 
      <foreach collection="criteria.criteria" item="criterion" > 
       <choose > 
       <when test="criterion.noValue" > 
        and ${criterion.condition} 
       </when> 
       <when test="criterion.singleValue" > 
        and ${criterion.condition} #{criterion.value} 
       </when> 
       <when test="criterion.betweenValue" > 
        and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} 
       </when> 
       <when test="criterion.listValue" > 
        and ${criterion.condition} 
        <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," > 
        #{listItem} 
        </foreach> 
       </when> 
       </choose> 
      </foreach> 
      </trim> 
     </if> 
     </foreach> 
    </where> 
    </sql> 
    <sql id="Update_By_Example_Where_Clause" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    <where > 
     <foreach collection="example.oredCriteria" item="criteria" separator="or" > 
     <if test="criteria.valid" > 
      <trim prefix="(" suffix=")" prefixOverrides="and" > 
      <foreach collection="criteria.criteria" item="criterion" > 
       <choose > 
       <when test="criterion.noValue" > 
        and ${criterion.condition} 
       </when> 
       <when test="criterion.singleValue" > 
        and ${criterion.condition} #{criterion.value} 
       </when> 
       <when test="criterion.betweenValue" > 
        and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} 
       </when> 
       <when test="criterion.listValue" > 
        and ${criterion.condition} 
        <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," > 
        #{listItem} 
        </foreach> 
       </when> 
       </choose> 
      </foreach> 
      </trim> 
     </if> 
     </foreach> 
    </where> 
    </sql> 
    <sql id="Base_Column_List" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    ID_COMUNE, CODICE_ISTAT, DESCRIZIONE, CAP, CODICE_PROVINCIA, COMUNE_SIGLA, COMUNE_CFIS 
    </sql> 
    <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.aieap.model.ComuniExample" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    select 
    <if test="distinct" > 
     distinct 
    </if> 
    <include refid="Base_Column_List" /> 
    from comuni 
    <if test="_parameter != null" > 
     <include refid="Example_Where_Clause" /> 
    </if> 
    <if test="orderByClause != null" > 
     order by ${orderByClause} 
    </if> 
    </select> 
    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    select 
    <include refid="Base_Column_List" /> 
    from comuni 
    where ID_COMUNE = #{idComune,jdbcType=BIGINT} 
    </select> 
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    delete from comuni 
    where ID_COMUNE = #{idComune,jdbcType=BIGINT} 
    </delete> 
    <delete id="deleteByExample" parameterType="com.aieap.model.ComuniExample" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    delete from comuni 
    <if test="_parameter != null" > 
     <include refid="Example_Where_Clause" /> 
    </if> 
    </delete> 
    <insert id="insert" parameterType="com.aieap.model.Comuni" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    insert into comuni (ID_COMUNE, CODICE_ISTAT, DESCRIZIONE, 
     CAP, CODICE_PROVINCIA, COMUNE_SIGLA, 
     COMUNE_CFIS) 
    values (#{idComune,jdbcType=BIGINT}, #{codiceIstat,jdbcType=VARCHAR}, #{descrizione,jdbcType=VARCHAR}, 
     #{cap,jdbcType=VARCHAR}, #{codiceProvincia,jdbcType=BIGINT}, #{comuneSigla,jdbcType=VARCHAR}, 
     #{comuneCfis,jdbcType=VARCHAR}) 
    </insert> 
    <insert id="insertSelective" parameterType="com.aieap.model.Comuni" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    insert into comuni 
    <trim prefix="(" suffix=")" suffixOverrides="," > 
     <if test="idComune != null" > 
     ID_COMUNE, 
     </if> 
     <if test="codiceIstat != null" > 
     CODICE_ISTAT, 
     </if> 
     <if test="descrizione != null" > 
     DESCRIZIONE, 
     </if> 
     <if test="cap != null" > 
     CAP, 
     </if> 
     <if test="codiceProvincia != null" > 
     CODICE_PROVINCIA, 
     </if> 
     <if test="comuneSigla != null" > 
     COMUNE_SIGLA, 
     </if> 
     <if test="comuneCfis != null" > 
     COMUNE_CFIS, 
     </if> 
    </trim> 
    <trim prefix="values (" suffix=")" suffixOverrides="," > 
     <if test="idComune != null" > 
     #{idComune,jdbcType=BIGINT}, 
     </if> 
     <if test="codiceIstat != null" > 
     #{codiceIstat,jdbcType=VARCHAR}, 
     </if> 
     <if test="descrizione != null" > 
     #{descrizione,jdbcType=VARCHAR}, 
     </if> 
     <if test="cap != null" > 
     #{cap,jdbcType=VARCHAR}, 
     </if> 
     <if test="codiceProvincia != null" > 
     #{codiceProvincia,jdbcType=BIGINT}, 
     </if> 
     <if test="comuneSigla != null" > 
     #{comuneSigla,jdbcType=VARCHAR}, 
     </if> 
     <if test="comuneCfis != null" > 
     #{comuneCfis,jdbcType=VARCHAR}, 
     </if> 
    </trim> 
    </insert> 
    <select id="countByExample" parameterType="com.aieap.model.ComuniExample" resultType="java.lang.Integer" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    select count(*) from comuni 
    <if test="_parameter != null" > 
     <include refid="Example_Where_Clause" /> 
    </if> 
    </select> 
    <update id="updateByExampleSelective" parameterType="map" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    update comuni 
    <set > 
     <if test="record.idComune != null" > 
     ID_COMUNE = #{record.idComune,jdbcType=BIGINT}, 
     </if> 
     <if test="record.codiceIstat != null" > 
     CODICE_ISTAT = #{record.codiceIstat,jdbcType=VARCHAR}, 
     </if> 
     <if test="record.descrizione != null" > 
     DESCRIZIONE = #{record.descrizione,jdbcType=VARCHAR}, 
     </if> 
     <if test="record.cap != null" > 
     CAP = #{record.cap,jdbcType=VARCHAR}, 
     </if> 
     <if test="record.codiceProvincia != null" > 
     CODICE_PROVINCIA = #{record.codiceProvincia,jdbcType=BIGINT}, 
     </if> 
     <if test="record.comuneSigla != null" > 
     COMUNE_SIGLA = #{record.comuneSigla,jdbcType=VARCHAR}, 
     </if> 
     <if test="record.comuneCfis != null" > 
     COMUNE_CFIS = #{record.comuneCfis,jdbcType=VARCHAR}, 
     </if> 
    </set> 
    <if test="_parameter != null" > 
     <include refid="Update_By_Example_Where_Clause" /> 
    </if> 
    </update> 
    <update id="updateByExample" parameterType="map" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    update comuni 
    set ID_COMUNE = #{record.idComune,jdbcType=BIGINT}, 
     CODICE_ISTAT = #{record.codiceIstat,jdbcType=VARCHAR}, 
     DESCRIZIONE = #{record.descrizione,jdbcType=VARCHAR}, 
     CAP = #{record.cap,jdbcType=VARCHAR}, 
     CODICE_PROVINCIA = #{record.codiceProvincia,jdbcType=BIGINT}, 
     COMUNE_SIGLA = #{record.comuneSigla,jdbcType=VARCHAR}, 
     COMUNE_CFIS = #{record.comuneCfis,jdbcType=VARCHAR} 
    <if test="_parameter != null" > 
     <include refid="Update_By_Example_Where_Clause" /> 
    </if> 
    </update> 
    <update id="updateByPrimaryKeySelective" parameterType="com.aieap.model.Comuni" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    update comuni 
    <set > 
     <if test="codiceIstat != null" > 
     CODICE_ISTAT = #{codiceIstat,jdbcType=VARCHAR}, 
     </if> 
     <if test="descrizione != null" > 
     DESCRIZIONE = #{descrizione,jdbcType=VARCHAR}, 
     </if> 
     <if test="cap != null" > 
     CAP = #{cap,jdbcType=VARCHAR}, 
     </if> 
     <if test="codiceProvincia != null" > 
     CODICE_PROVINCIA = #{codiceProvincia,jdbcType=BIGINT}, 
     </if> 
     <if test="comuneSigla != null" > 
     COMUNE_SIGLA = #{comuneSigla,jdbcType=VARCHAR}, 
     </if> 
     <if test="comuneCfis != null" > 
     COMUNE_CFIS = #{comuneCfis,jdbcType=VARCHAR}, 
     </if> 
    </set> 
    where ID_COMUNE = #{idComune,jdbcType=BIGINT} 
    </update> 
    <update id="updateByPrimaryKey" parameterType="com.aieap.model.Comuni" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    update comuni 
    set CODICE_ISTAT = #{codiceIstat,jdbcType=VARCHAR}, 
     DESCRIZIONE = #{descrizione,jdbcType=VARCHAR}, 
     CAP = #{cap,jdbcType=VARCHAR}, 
     CODICE_PROVINCIA = #{codiceProvincia,jdbcType=BIGINT}, 
     COMUNE_SIGLA = #{comuneSigla,jdbcType=VARCHAR}, 
     COMUNE_CFIS = #{comuneCfis,jdbcType=VARCHAR} 
    where ID_COMUNE = #{idComune,jdbcType=BIGINT} 
    </update> 
</mapper> 

回答

0

我使用的MyBatis一样你。你的代码看起来很好。即使我不确定类型映射是否存在问题。试试以下两个技巧来解决你的问题:

  1. 变化的Java类型mybtis别名 一) “java.lang.Long中的” - > “长”,B) “com.aieap.model.Comuni” - > “COMUNI”

  2. 尝试添加别名,而不是XML映射 @ org.apache.ibatis.type.Alias( “COMUNI”)以com.aieap.model.Comuni,删除XML typeAlias,加弹簧配置,以您org.mybatis.spring.SqlSessionFactoryBean:

祝你好运, 马丁

+0

感谢您的回复,但不工作。也许在图书馆中可能存在一些问题: – user1671106

3

嗨,这个问题通常是连接到映射器的位置。 所以尝试设置mapperLocation属性在bean:

<property name="mapperLocations" 
value="classpath*:pathWhereYouHaveMapper/*Mapper.xml" /> 

希望它能帮助!

7

可能有几个原因......!

  • - > SQL语法(也许一个小的查询有一个额外的 “” 在选择结束)

  • - >类路径的问题,解决不了依赖的JAR

  • - >这也可能是由于文件编码问题或非法XML文件嵌入在您的'* Mapper.xml'文件中。 (所以小心你的编辑器!!)

最重要的是你应该使用相同的名字。

  • 接口= xxx.yyy.mappers.SettingMapper.class
  • 映射文件= /xxx/yyy/mappers/SettingMapper.xml
  • 映射器命名空间= xxx.yyy.mappers.SettingMapper
+1

在我的情况下,我选择了一个字符串并将其放入日期对象中。不匹配的结果类型。更改为选择字符串字段并解决错误。 –

+0

是的,它发生了。我们期望它回落到ToString(),但它不会触发。 – mahesh

+0

'java.lang.IllegalArgumentException:映射的语句集合不包含com.ct的值...'我之前已经遇到过这个问题。这意味着来自'* ModelMapper.xml'文件的映射语句集合不包含'* ModelMapper.java'文件中定义的方法。 在我的情况下,有时是由于xml文件和java文件的命名不匹配造成的。 – ZhaoGang

3

这通常意味着mybatis无法找到您引用的映射。也许你忘记了* Mapper.xml文件添加到的MyBatis-config.xml中(这是MyBatis的一个标准配置文件)

<mappers> 
    <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> 
</mappers> 

见多文档http://mybatis.github.io/mybatis-3/configuration.html#mappers

2

在我的情况下发生了什么是否在我的方法名称中映射xml文件中有一个TYPO。 当我更改了DAO名称时,我忘了在xml中进行更改,它可能会帮助其他人。

+1

'parameterType'和'resultType'必须在重构后精确匹配。 – DerMike

1

mapper.xml中重复的id也会引发此类异常。 希望这有助于。

0

我有类似的问题。然后我发现所有具有在mapper.xml中定义的查询映射的请求具有相同的错误。

可能是因为WAR的构建不当或者对服务器的部署不当。 无论如何,我删除了这个WAR文件,并重新部署,它的工作!

0

我也遇到过这个例外。在我的情况下,mapper xml文件出现在类路径中包含的JAR中,但不知何故,MapperScannerConfigurer找不到它。我通过阅读日志来了解这一点。您应该阅读日志并检查以下格式的行,以确定是否找到任何映射器。我不得不给它的根路径,之后它找到了我的映射器。

PathMatchingResourcePatternResolver:423 - Resolved location pattern [classpath*:*.xml] to resources [URL [jar:file:/home/user/src/tomcat8/webapps/example/WEB-INF/lib/ExampleDao-1.0.0-SNAPSHOT.jar!/TestMapper.xml]] 
2

添加到其他的答案,你还必须

Check for duplicate method names

时的误差,最后谈到在日志中。

IllegalArgumentException: Mapped Statements collection does not contain value 

忽略上面的消息,并简单地向上移动日志并查找日志中的第一条错误消息。我得到的第一个错误是,

ERROR [main] mapper.MapperFactoryBean (MapperFactoryBean.java:83) - Error while adding the mapper 'interface com.xyz.mappers.UserMapper' to configuration. 
java.lang.IllegalArgumentException: Mapped Statements collection already contains value for com.xyz.mappers.UserMapper.getAllUserDetails 

错误明确指出,该方法getAllUserDetailsUserMapper接口已经存在(有不同数量的参数)。复制方法名称也会引发此错误。 (复制粘贴代码的惩罚):P

1

我也遇到过这个问题。除了上述答案的可能性,我尝试用这种方式解决该问题:

的方法名称应该为daomapper.xml一样,在我的情况的方法名称不一样。所以你必须确定它们是一样的。

祝你好运!