Mabitis 多表查询resultType=“java.util.hashMap”

Posted siesteven

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mabitis 多表查询resultType=“java.util.hashMap”相关的知识,希望对你有一定的参考价值。

1、进行单表查询的时候,xml标签的写法如下

进行多表查询,且无确定返回类型时 xml标签写法如下:

<select id="Volume" parameterType="java.util.Map" resultType="java.util.HashMap">

因为没有对应的类型,所以返回HashMap 类型的结果。此时需要在dao中添加 java.util.HashMap 的引用。否则报错。

2、此次bug处理。另外习得从异常信息定位缺陷。

错误文件和错误地址都会显示到异常信息里。找到对应的关键字即可。

如,第一个错误最后一部分的信息为: Failed to parse mapping resource: \'file [D:\\JavaIDESoftWare\\LeMapper.xml]\'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias \'java.util.hashMap\'.  Cause: java.lang.ClassNotFoundException: Cannot find class: java.util.hashMap

文件LeMapper.xml映射失败,未找到hashMap类。把HashMap 写成了hashMap!!!

找到xml文件,

最开始写的函数返回值类型为:List<Object> ,因此没有加载包 java.util.Map的时候并没报错。经同事修改函数后,函数返回值类型变为List<Map<String,Object>> ,因此,当把包去掉

直接报了语法错误

 

 

 

3、数据库获取当前时间

mysql     sqlserver

now() -- getdate()

比较全的mysql 时间相关处理的文章 MySQL获取时间和时间转换  

 

4、断点处理

百度经验的文章,删除所有断点。好羞耻啊。竟然去找百度经验。。。。

5、bug 2 sql语句错误。

(1)未处理时间参数,造成错误

 (2)还原数据库后,表结构对应不上了

 症状是:(1)无代码(2)控制台直接提示 sql语句错误

 

 6、阅读项目流程

 

以上是关于Mabitis 多表查询resultType=“java.util.hashMap”的主要内容,如果未能解决你的问题,请参考以下文章

多表查询用resultType还是resultMap&Invalid bound statement (not found)解决

MyBatis resultType 与 resultMap多表查询(association,collection)动态SQL的使用(iftrimwheresetforeach)

resultMap详解(包含多表查询)

mybatis: resultMap 结果集映射和多表查询

mybatis 关联(多表)查询

mybatis-基于xml的多表查询