<?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 :(得分:9)
可能有几个原因......
- &GT; SQL语法(可能只有一个小查询在选择的末尾有一个额外的“,”)
- &GT;类路径问题,无法解决jar依赖性
- &GT;这也可能是由于文件编码问题或嵌入在'* Mapper.xml'文件中的非法xml字符造成的。 (所以请留意你的编辑..!)
最重要的是,您应该使用相同的名称。
答案 1 :(得分:7)
您好这个问题通常与映射器位置有关。 因此,尝试在SqlSessionFactory bean中设置mapperLocation属性:
<property name="mapperLocations"
value="classpath*:pathWhereYouHaveMapper/*Mapper.xml" />
希望有所帮助!
答案 2 :(得分:6)
这通常意味着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
中的更多内容答案 3 :(得分:2)
在我的情况下,发生的事情是映射xml文件中的方法名中有 TYPO。 当我更改DAO名称时,我忘了更改xml,它可能会帮助其他人。
答案 4 :(得分:2)
添加其他答案,您还必须
检查重复的方法名称
此错误最后会出现在日志中。
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
错误清楚地指出,方法getAllUserDetails
已经存在于UserMapper
接口中(具有不同数量的参数)。复制方法名称也会引发此错误。 (复制粘贴代码的处罚):P
答案 5 :(得分:1)
mapper.xml中的重复id
也会抛出此类异常。
希望这会有所帮助。
答案 6 :(得分:1)
我也遇到过这个问题。除了上述答案的可能性之外,我尝试使用这种解决问题的方法:
方法名称在dao
和mapper.xml
中应该相同,在我的情况下,方法名称不相同。所以你必须确保它们是相同的。
答案 7 :(得分:0)
我和mybatis一样使用mybatis。你的代码看起来很好。即使我不确定类型映射是否存在问题。请尝试以下两个提示来解决您的问题:
将java类型更改为mybtis别名 a)“java.lang.Long” - &gt; “long”,b)“com.aieap.model.Comuni” - &gt; “COMUNI”
尝试添加别名而不是XML映射 @ org.apache.ibatis.type.Alias(“comuni”)到com.aieap.model.Comuni,删除xml typeAlias,将spring配置添加到你的org.mybatis.spring.SqlSessionFactoryBean:
答案 8 :(得分:0)
我有类似的问题。然后我发现所有在mapper.xml上定义了查询映射的请求都有相同的错误。
可能是因为WAR构建不当或服务器部署不当。 无论如何,我删除了那个WAR文件并重新重新部署并且它有效!
答案 9 :(得分: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]]
答案 10 :(得分:0)
检查是否已在属性文件中映射mybatis.config
。
将此行添加到application.properties文件中。
mybatis.config=classpath:mybatis-config.xml
答案 11 :(得分:0)
您可以在mybatis-config.xml
文件中注册映射器
<configuration>
<properties resource="db.dev.properties">
</properties>
<typeHandlers>
<package name="com.newtonx.model.typehandlers"/>
</typeHandlers>
<environments default="development">
...
</environments>
<mappers>
<mapper resource="com/project/model/xml/SomeMapper.xml"/>
// other mapper here
</mappers>
...
</configuration>