Invalid bound statement (not found): cn.itsun.springmvc.service.ItemService.findItemsList
<servlet><servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param><param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping><context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
web层 controller 使用springmvc技术
service层 不变
dao层 mapper 使用mybatis技术
使用mapper的动态代理开发在写接口时遵循4个原则:
1.接口的方法名 == mapper.xml文件中的id
2.接口的类全路径 == mapper.xml文件中的namespace
3.接口的入参类型 == mapper.xml文件中的resultType
4.接口的返回值类型 == mapper.xml文件中的parameterType
sqlMapConfig.xml文件中
1)自定义别名:
<typeAliases>
<pacakge name="cn.itsun.pojo" /> (批量自定义别名,别名为类名,大小写不敏感)
或者<typeAlias type="cn.itsun.pojo.User" alias="user" /> (单个自定义别名)
<typeAliases/>
2)sqlMapConfig.xml与mapper.xml文件的映射:
<mappers>
<mapper resource="User.xml" />
<mapper class="cn.itsun.mapper.User.xml" /> (指定接口的类路径)
<package name="cn.itsun.mapper" /> (指定包下的所有mapper接口的xml文件)
(第二种 和 第三种需要把mapper.xml和mapper接口放在一起)
<mappers/>
注意:在配置mybatis和springmvc整合时
在applicationContext.xml文件中写扫描语句后,就不用配置与mapper.xml文件的映射了
<!-- Mapper动态代理开发 之 扫描 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 指定一个基本包 -->
<property name="basePackage" value="cn.itsun.springmvc.dao"/>
</bean>