之前的数据库图简单都是纯小写格式,这一次做项目为了显得正规一些,模拟实际的情况,采用了驼峰命名的规则,这时候就遇到了结果匹配的问题。

之前只要

<select id="select" parameterType="map" resultType="xxxx">

就可以自动匹配,这一次我也以为可以,但是实际测试的时候发现能查到数据,可是数据无法传输出来,我以为是sql语句出现了问题,数据库不认识xx_xx这种写法的原因,但是通过mybatis打印出来的sql日志又发现没有问题,同时打印结果集的size也是大于0的,说明能正常查到数据,那么问题就只能出现在封装的过程当中,我就想到了应该是字符集映射出来问题,就改写resultMap,第一次使用该方法,对应完之后运行直接报错。

查看控制台输出

Error resolving JdbcType. Cause:java.lang.IllegalArgumentException: No enum

这是因为Mybatis不认识int类型的jdbctype数据,不仅要大写,而且得是Integer

附一张mybatis官网书写的支持的jdbctype类型数据

ps:其实也还有一种复杂的写法,此前我也在其他短小的项目中使用过

select doc.id,
doc.title,
doc.text,
doc.departid,
doc.authorid,
depart.name as departName,
emp.name as authorName,
doc.statenum,
doc.advice,
empl.name as approveName,
empl.id as approveId

这种写法复用率很低,当你有多个查询同一个对象的语句时还是使用结果集映射更为方便。

Mybatis结果集映射问题的更多相关文章

  1. Mybatis 结果集映射

    结果映射(resultMap) constructor - 用于在实例化类时,注入结果到构造方法中(一般不用) idArg - ID 参数:标记出作为 ID 的结果可以帮助提高整体性能 arg - 将 ...

  2. Mybatis学习笔记8 - resultMap自定义结果集映射规则

    一.resultMap自定义结果集映射规则 示例如下: 接口定义: package com.mybatis.dao; import com.mybatis.bean.Employee; public ...

  3. mybatis中处理结果集映射

    单行结果集映射: 接口中方法返回值定义为Map类型,sql语句的resultType属性设置为map即可.这种情况默认把列名作为key,列中的值作为value. 也就是说用map<Strirng ...

  4. Mybatis——ResultMap(结果集映射)的使用

    ResultMap的使用 在Mybatis中,可以使用resultMap(结果集映射)作为sql的返回类型 一般用来解决如下问题: 数据库表字段名和实体类属性名不一致的问题: 多对一问题: 例如:多个 ...

  5. Mybatis学习笔记-ResultMap结果集映射

    解决属性名与字段名不一致的问题 新建项目 --> 测试实体类字段不一致的情况 数据库字段:id,name,pwd 实体类属性:id,name,password 输出结果 User{id=1, n ...

  6. mybatis百科-结果集映射类ResultMap

    目录 1 成员变量 2 构造函数 3 其他函数 3.1 setter 和 getter 函数 4 静态内部类 4.1 成员变量 4.2 构造函数 4.3 建造者相关的函数 4.4 获取配置的构造方法参 ...

  7. Mybatis 强大的结果集映射器resultMap

    1. 前言 resultMap 元素是 MyBatis 中最重要最强大的元素.它可以让你从 90% 的 JDBC ResultSets 数据提取代码中解放出来,并在一些情形下允许你进行一些 JDBC ...

  8. mybatis源码追踪2——将结果集映射为map

    org.apache.ibatis.binding.MapperMethod中execute方法 ...} else if (method.returnsMap()) { result = execu ...

  9. mybatis(五):源码分析 - 结果集映射流程

随机推荐

  1. Java基础——类与接口

    一.类与接口的关系 1.类与类的关系 继承关系,只能单继承,不能多继承:但是可以多层继承 2.类与接口的关系 实现关系,可以单实现,也可以多实现,还可以继承一个类的同时实现多个接口 3.接口与接口的关 ...

  2. vim设置自动添加头部注释

    #自己改了改vim开头文件,如下图# 友友们可以直接修改·SetTitle() if v:lang =~ "utf8$" || v:lang =~ "UTF-8$&quo ...

  3. Linux内核升级修复系统漏洞-RHSA-2017:2930-Important: kernel security and bug fix update

    公司使用的阿里云服务器(Centos7.4 x86_64bit)内核版本为:3.10.0-693.21.1.el7.x86_64, 2019年3月4日 02:07:58通过云盾安骑士-->漏洞管 ...

  4. linux 查看命令

    linux查找命令 ls查看文件信息 ​ 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 ​ 常用参数搭 ...

  5. Ubuntu下使用C语言连接Mysql 8.0客户端教程

    Ubuntu下如何C语言程序连接MYSQL 8.0(全教程) 1. 安装GCC(略) 2. 安装mysql(本人使用的是最新MySQL 8.0版本) sudo apt install mysql-cl ...

  6. ElasticSearch7.3 学习之定制动态映射(dynamic mapping)

    1.dynamic mapping ElasticSearch中有一个非常重要的特性--动态映射,即索引文档前不需要创建索引.类型等信息,在索引的同时会自动完成索引.类型.映射的创建. 当ES在文档中 ...

  7. FPGA设计流程

    今天学习了FPGA设计流程的视频,我理解要做一个完整的FPGA系统,所要经历的步骤,先将它简单总结如下: 我在对上面的流程图进行解释: 第一:设计定义就是我们这个FPGA系统或者FPGA设计所要实现的 ...

  8. JAVA视频笔记(一)

    搭建pho开发环境与框架图 韩顺平 第一章: No1  关于文件以及文件夹的管理 将生成的文本文档做成详细信息的形式,显示文件修改时间以及文件大小,便于文件查看和管理,也是对于一名IT人士高效能工作的 ...

  9. Qt自定义控件之可伸缩组合框(GroupBox)控件

    摘要 本文基于QGroupBox扩展了一种可以伸缩的组合框,正常状态下,组合框处于收缩状态,内部的控件是隐藏的:需要的时候,可以将组合框进行伸展,并将内部控件显示出来. 正文 实现的代码比较简单,主要 ...

  10. memcached 和 MySQL 的 query ?

    cache 相比,有什么优缺点? 把 memcached 引入应用中,还是需要不少工作量的.MySQL 有个使用方便的 query cache,可以自动地缓存 SQL 查询的结果,被缓存的 SQL 查 ...