mybatis中resultMap引发的吐血bug
简单的讲:
问题背景:如果在写mybatis中的resultMap时,不下心将resultMapde id写成映射接口的名字,会发生什么?
结论:单元测试进度条卡住但不报错, Tomcat运行不报错,但是不加载项目
以下是详细的:
需求:从数据库中加载之前插入log日志,打印在某一页面上。
如:

Java中的pojo:
package pojo;
import java.io.Serializable;
import java.util.Date;
/**
* 系统日志
*
* @author Administrator
*/
public class Log implements Serializable {
private static final long serialVersionUID = -7372303516713218870L;
private int id;//
private int userId;//
private String userName;
private Date createDate;//创建日期
private String content;//日志内容
private String operation;//用户所做的操作
private String url;//用户所做的操作
public Log() {
}
public Log(int id, int userId, String userName, Date createDate, String content, String operation, String url) {
this.id = id;
this.userId = userId;
this.userName = userName;
this.createDate = createDate;
this.content = content;
this.operation = operation;
this.url = url;
}
public static long getSerialVersionUID() {
return serialVersionUID;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getOperation() {
return operation;
}
public void setOperation(String operation) {
this.operation = operation;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
@Override
public String toString() {
return "Log{" +
"id=" + id +
", userId=" + userId +
", userName='" + userName + '\'' +
", createDate=" + createDate +
", content='" + content + '\'' +
", operation='" + operation + '\'' +
", url='" + url + '\'' +
'}';
}
}
利用mybatis读取数据时,发生不可理解的事情:

public List<Log> listAll();
<resultMap id="LogMapper" type="Log">
<id column="userid" property="userId"/>
<result column="username" property="userName"/>
<result column="content" property="content"/>
<result column="operation" property="operation"/>
<result column="createdate" property="createDate"/>
<result column="url" property="url"/>
</resultMap>
<select id="listAll" resultMap="LogMapper">
SELECT * FROM t_log
</select>
程序一旦单元测试就会进入这样的状态,
无限循环,没有结束。不仅这个方法,所有的测试方法都进入这种“阻塞”的状态,关键还没有异常的提示(哭~)
不仅如此,重启tomcat会进入这样


一方面tomcat不再加载项目,同时释放了几个看起来像是bug的坑,其实这些都时正常的信息,没有其他的东西!
期间重新导过jar包,删除过tomcat,重新部署项目,但只有一添加上述代码,就会崩溃。最后发现,原来和接口名字重复了,重复了。。。。。
mybatis中resultMap引发的吐血bug的更多相关文章
- mybatis中resultMap配置细则
resultMap算是mybatis映射器中最复杂的一个节点了,能够配置的属性较多,我们在mybatis映射器配置细则这篇博客中已经简单介绍过resultMap的配置了,当时我们介绍了resultMa ...
- 在mybatis中resultMap与resultType的区别
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMapresultType是直接表示返回类型的,而resultMap则是对外部ResultMa ...
- Mybatis中resultMap与resultType区别
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultM ...
- Mybatis中resultMap的基础配置
一.概述 resultMap 元素是 MyBatis 中最重要最强大的元素.它就是让你远离 90%的需要从结果集中取出数据的 JDBC 代码的那个东西,而且在一些情形下允许你做一些 JDBC 不支持的 ...
- MyBatis 中 resultMap 详解
resultMap 是 Mybatis 最强大的元素之一,它可以将查询到的复杂数据(比如查询到几个表中数据)映射到一个结果集当中.如在实际应用中,有一个表为(用户角色表),通过查询用户表信息展示页面, ...
- mybatis中resultMap的使用
在mybatis中,使用<select>标签,必须要设置resultType属性 或 resultMap属性 否则会报错! resultType一般是返回简单类型的查询结果,涉及一张表 可 ...
- Mybatis中<resultMap>用法(主要用于一对多去重)
一.创建部门表和员工表: 创建部门信息表`t_department`,其中包括`id`, `name` CREATE TABLE t_department ( id INT AUTO_ ...
- Mybatis中resultMap的作用-解决实体类属性名和数据库字段不一致
解决实体类属性名和数据库字段不一致
- mybatis中的resultMap与resultType、parameterMap与 parameterType的区别
Map:映射:Type:Java类型 resultMap 与 resultType.parameterMap 与 parameterType的区别在面试的时候被问到的几率非常高,项目中出现了一个小b ...
随机推荐
- BZOJ1179 : [Apio2009]Atm 缩点+spfa
1179: [Apio2009]Atm Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 2069 Solved: 826[Submit][Status ...
- OSS与文件系统的对比
基本概念介绍_开发指南_对象存储 OSS-阿里云 https://help.aliyun.com/document_detail/31827.html 强一致性 Object 操作在 OSS 上具有 ...
- CSP 201612-4 压缩编码 【区间DP+四边形不等式优化】
问题描述 试题编号: 201612-4 试题名称: 压缩编码 时间限制: 3.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一段文字,已知单词a1, a2, …, an出现的频率分别t1 ...
- 在Android.mk文件中输出打印消息 (转载)
转自:http://blog.csdn.net/xiaibiancheng/article/details/8479694 在进行Android NDK的开发当中有时想看看Android.mk文件当中 ...
- MySQL 循环分支语法
---恢复内容开始--- Loop循环 label: LOOP statement_list IF exit_condition THEN LEAVE label; END IF; END LOOP ...
- bzoj 1621: [Usaco2008 Open]Roads Around The Farm分岔路口【dfs】
模拟就行--讲道理这个时间复杂度为啥是对的??? #include<iostream> #include<cstdio> using namespace std; int k, ...
- bzoj 1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐【dfs】
从每个奶牛所在草场dfs,把沿途dfs到的草场的con都+1,最后符合条件的草场就是con==k的,扫一遍统计一下即可 #include<iostream> #include<cst ...
- laravel生命周期和核心思想
工欲善其事,必先利其器.在开发Xblog的过程中,稍微领悟了一点Laravel的思想.确实如此,这篇文章读完你可能并不能从无到有写出一个博客,但知道Laravel的核心概念之后,当你再次写起Larav ...
- redis 缓存应用
第1章 部署与安装 wget http://download.redis.io/releases/redis-3.2.10.tar.gz tar xf redis-3.2.10.tar.gz cd r ...
- 水题 CodeForces 137A Postcards and photos
题目传送门 /* 水! */ #include <cstdio> #include <cstring> #include <algorithm> using nam ...