一个简单的servletservlet可以有多个mapper吗

解决Error querying database.
Cause: java.lang.IllegalArgumentException: Mapped Statements collection
在spring+mybatis开发中遇到如下错误
HTTP Status 500 - Reque nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
type&Exception report
message&Reque nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
description&The server encountered an internal error that prevented it from fulfilling this request.
org.springframework.web.util.NestedServletException: Reque nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database.
Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for net.suntec.dynabiz.resources.mybatis.RouteMapper.findRoutes
### Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for org.test.resources.mybatis.RouteMapper.findRoutes
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
调查代码发现org.test.UserMapper.findUsers没有找到org.test.UserMapper.findUsers,代码userMapper.xml是已经写过的 为什么没有找到呢,
通过查找代码发现 mybatis的配置文件中userMapper.xml没有配置才会出现上述错误
&mapper resource=&org/test/resources/mybatis/userMapper.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&&
&&& &typeAliases&&
&&&&&&& &typeAlias alias=&UserEntity& type=&org.test.bean.User& /&
&&& &/typeAliases&&
&&& &mappers&
&&& &&& &mapper resource=&org/test/resources/mybatis/userMapper.xml& /&
&&& &/mappers&
&/configuration&
在dao中写法,包名加类名要注意写对
getSqlSession().selectList(&org.test.resources.mybatis.UserMapper.findUsers&);
userMapper.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=&org.test.resources.mybatis.UserMapper&&&
&resultMap type=&UserEntity& id=&userResultMap&&&
&&& &id property=&id& column=&id& /&
&&& &result property=&name& column=&name& /&
&/resultMap&&
&select id=&findUsers& resultType=&UserEntity& resultMap=&userResultMap&&
&&& select id ,name from tb_users
相关文章:\ 后端开发
【servlet+mybatis实现一个仓库管理系统】之mybatis手记
废话就不说了,主要是对mybatis的内存优化的笔记
截图中显示已经很清楚了
&cache size="1024" flushInterval="60000" eviction="LRU" readOnly="false "/&
1.size:表示cache中能容纳的最大元素数。默认是1024
2.flushInterval:定义缓存刷新周期,以毫秒计
3.eviction:定义缓存的移除机制;默认是LRU(least recently used, 最近最少使用)另外还有FIFO(first in first out
先进先出)
4.readOnly:默认是false,假如是true,缓存只能是读
mybatis这里的内存优化在处理一些高并发的程序中作用比较大,而小项目中并不能体现出其价值(不过我也没用到,毕竟做的还是单用户)。
这里在介绍一下mybatis的分页:
1.逻辑分页(实际开发中并没什么卵用,那为什么介绍呢?我也是刚学到)
Mapper中的接口:
//逻辑分页
public List&User& findUsers(RowBounds rowBounds);
接口的实现;
&select id="findUsers" resultMap="userResult"&
SELECT * FROM user_tab
结果展示:
上述的方法是一个逻辑上的实现,也就是只能显示第一页,但是第二页查起来就没那么简单了
2.物理分页
Mapper中的接口:
//物理分页
public List&User& findUser(Map&String, Object& map);
接口实现:
&select id="findUser" parameterType="Map" resultMap="userResult"&
SELECT * FROM user_tab
&if test="start != null and size != null"&
limit #{start}, #{size}
* 物理分页查询
public void testFindUser() {
logger.info("查询学生(物理分页)");
Map&String, Object& map = new HashMap&String, Object&();
map.put("start", 0);
map.put("size", 3);
List&User& list = userMapper.findUser(map);
for(User user:list){
System.out.println(user);
两者的不同之处主要是体现在这里,传进去的参数是不同的,逻辑分页里面是mybatis的参数,分页起始点和每页的数据量都已经固定(个人见解,望指正)。而逻辑分页是根据传入参数可以将数据进行分页(start是起始位置,size则是截断数量,修改start的值就可以实现分页)
本文原创发布于慕课网 ,转载请注明出处,谢谢合作
若觉得本文不错,就分享一下吧!
作者的热门文章
请登录后,发表评论
评论加载中...
Copyright (C) 2018 imooc.com All Rights Reserved | 京ICP备 号-113046人阅读
Hibernate/MyBatis(36)
原文地址:https://github.com/mybatis/mybatis-3/wiki/FAQ
How do I use multiple parameters in a mapper?
Java reflection does not provide a way to know the name of a method parameter so MyBatis names them by default like: param1, param2...
If you want to give them a name use the @param annotation this way:
import org.apache.ibatis.annotations.Param;
public interface UserMapper {
User selectUser(@Param("username") String username, @Param("hashedPassword") String hashedPassword);
Now you can use them in your xml like follows:
&select id=”selectUser” resultType=”User”&
select id, username, hashedPassword
from some_table
where username = #{username}
and hashedPassword = #{hashedPassword}
文章:25篇
阅读:2673休闲娱乐生活服务其他类别扫扫有惊喜
servlet入门详解,远离4041.1. servlet简介servlet:1、接受浏览器发送过来的消息。2、给浏览器返回消息。浏览器认识html。可以动态去输出htmlRequest:请求。客户端向服务端发送的信息。Response:响应。服务器向客户端放松的信息。通常请求和响应是成对出现的。作用:servlet 编写一个程序生成网页。浏览器请求—servlet,servlet会生产html。把html传送给浏览器(响应)。浏览器看到内容是htmlsun公司提供过的servlet的api在javaEE的规范中。如果要使用servlet需要使用javaEE的api。(javeEE包)javaEE相关的包,(myeclipse自带。当新建一个web工程的时候,myeclipse会自动的把javaEE包导入工程中。)注意:javaEE的api并不在jdk中。1.2. servlet快速入门1.2.1. 编写servlet写servlet做两件事1、实现servlet接口。 由sun公司定义的一个接口。(定义一个规范)2、把类部署到web服务器中(tomcat)。sun公司定义一个servlet的规范。定义了servlet应该有哪些方法,以及方法需要的参数。1、实现servlet接口(javax.servlet.Servlet)public class Hello implements Servlet{} 实现servlet接口实现接口的所有方法public void service(ServletRequest requestred, ServletResponse responsered)throws ServletException, IOException {}public void destroy() {}public ServletConfig getServletConfig() {}public String getServletInfo() {}public void init(ServletConfig arg0) throws ServletException {}2、重写service方法public void service(ServletRequest requestred, ServletResponse responsered)throws ServletException, IOException {System.out.println(“第次请求都会响应&);}当浏览器输入地址,访问servlet的时候,servlet会执行servcie方法。
上一页&1共6页热门新闻更多
实时热点榜单热门视频
阅读下一篇视频推荐}

我要回帖

更多关于 新建一个servlet 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信