myBatis 常见问题(一)查询结果字段为null

2023-10-26

问题描述:

查询认购单详情

<select id="adminGetDatail" resultMap="SubscriptionPO" parameterType="com.money56.ifmp.api.module.bm.vo.ProductSubscriptionVO" >
  	SELECT 
        c.real_name,c.phone,c.idcard_no
	FROM bm_subscription AS a JOIN ms_member AS c 
	where 1=1
	<if test="subscriptionId != null" >
           and  a.subscription_id = #{subscriptionId,jdbcType=CHAR}
        </if>
        <if test="memberId != null" >
           and   c.member_id = #{memberId,jdbcType=CHAR}
         </if>
  	</select>
<resultMap id= "SubscriptionPO" type = "com.money56.ifmp.api.module.bm.po.SubscriptionPO">
    	 <id column="subscription_id" property="subscriptionId" jdbcType="CHAR" />
        <result column="phone" property="phone" jdbcType="CHAR" />
	<result column="real_name" property="realName" jdbcType="VARCHAR" />	
 </resultMap>
/**
	 * admin
	 * 获取认购单详情
	 * @param vo
	 * @return
	 */
	public String adminGetDatails(ProductSubscriptionVO vo){
		if (StringUtils.isBlank(vo.getSubscriptionId())) {
			return buildFailResult(SystemStatusEnum.ILLEGAL_PARAMETER, "请传入认购单ID");
		}
		if (StringUtils.isBlank(vo.getMemberId())) {
			return buildFailResult(SystemStatusEnum.ILLEGAL_PARAMETER, "请传入会员ID");
		}
		SubscriptionPO po = dao.adminGetDatail(vo);
		if (po == null) {
			return buildFailResult(SystemStatusEnum.NO_DATA);
		}
		SubscriptionVO subscriptionVO = VoFactory.createByJson(SubscriptionVO.class, po);
		return buildSuccessResult(subscriptionVO, false);
	}

结果为:


从sql语句上看,明明我查了3个字段,姓名、电话、身份证号码。问题是少了身份证号码字段。为什么呢?


问题分析:

myBatis通过xml文件把查询的结果resultMap映射到type实体类中。

我们检查resultMap与type实体类,发现type实体类中有身份证号码字段,但resultMap没有身份证号码字段。造成查询结果无法映射给实体类,所以我们在最终的结果中看不到身份证号码字段。


问题解决:

在resultMap中增加身份证号码字段。

<resultMap id= "SubscriptionPO" type = "com.money56.ifmp.api.module.bm.po.SubscriptionPO">
    	 <id column="subscription_id" property="subscriptionId" jdbcType="CHAR" />
        <result column="phone" property="phone" jdbcType="CHAR" />
	<result column="real_name" property="realName" jdbcType="VARCHAR" />
	<result column="idcard_no" property="idcardNo" jdbcType="VARCHAR" />
</resultMap>
然后运行代码,发现问题已解决。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

myBatis 常见问题(一)查询结果字段为null 的相关文章

随机推荐

  • 712. 两个字符串的最小ASCII删除和 -- 动规

    712 两个字符串的最小ASCII删除和 class MinimumDeleteSum 712 两个字符串的最小ASCII删除和 https leetcode cn problems minimum ascii delete sum for
  • Spring中的AOP和事务管理,以及SpringBoot中使用事务

    一 什么是事务 狭义上的事务特指数据库事务 一方面 当多个程序并发访问数据库时 事务可以在这些应用程序之间提供一个隔离方法 以防止彼此的操作互相干扰 另一方面 事务为数据库操作提供了一个从失败中恢复到正常状态的方法 同时提供了数据库即使在异
  • 全国等级保护测评机构推荐目录

    转自 http www djbh net webdev web LevelTestOrgAction do p nlbdLv3 id 402885cb35d11a540135d168e41e000c 国家信息安全等级保护工作协调小组办公室推
  • 机器学习实战:AdaBoost预测病马率

    import numpy as np 函数说明 加载数据集 Parameters filename 文件名 Returns dataMat 数据集 labelMat 标签 def loadDataSet filename numFeat l
  • select epool

    一 问题引出 联系区别 问题的引出 当需要读两个以上的I O的时候 如果使用阻塞式的I O 那么可能长时间的阻塞在一个描述符上面 另外的描述符虽然有数据但是不能读出来 这样实时性不能满足要求 大概的解决方案有以下几种 1 使用多进程或者多线
  • Deepin 20.1 安装nvidia显卡驱动 爬坑

    前言 之前用的是ubuntu系统 装得也是双系统 然后最近看到了deepin 系统 然后就装了下 在装nvidia显卡时 遇到了重启蓝屏的问题 在反复重装N多次系统同时查阅N多次网友资料时 总结出以下几点 当然如果你想安装的话直接滑下方 不
  • 【计算机视觉

    文章目录 一 检测相关 8篇 1 1 Attending Generalizability in Course of Deep Fake Detection by Exploring Multi task Learning 1 2 Harv
  • 基于参数shared_pool_reserved_size进一步理解共享池shared pool原理

    结论 1 与共享池相关的参数为 shared pool size shared pool reserved size shared pool reserved pct shared pool reserved min alloc 2 sha
  • String的三种遍历方式

    include include using namespace std int main string s1 string s2 hello bite string s3 s2 1 for循环 for size t i 0 i lt s2
  • JUC学习系列十一(并发类容器)

    首先了解一下并发类容器和同步类容器的概念 以及这两类的区别 一 同步类容器 同步类容器都是线程安全的 但在某些场景下可能需要加锁来保护复合操作 复合类操作如 迭代 反复访问元素 遍历完容器中的所有元素 跳转 根据指定的顺序找到当前元素的下一
  • Android——WebView控件访问网页

    目录 一 WebView 1 基本使用 2 最简单的demo 3 注意 二 小练手 1 EditView补充内容 2 案例 一 WebView Webview 是一个基于webkit的引擎 可以解析DOM 元素 展示html页面的控件 我们
  • 前端基础,超全html常用标签大汇总

    标签 整个html文件都会放在html标签里面 标签 表示网页的头部信息 一般是为浏览器提供对应的网站需要的相关信息 浏览器中是不会显示的 比如 标题title 引入css 字符编码等 但是title标题会在浏览器的标题栏显示 标签 里面的
  • 服务器中毒怎么办,如何防御?

    数据中心在为用户提供服务器空间和网络服务时 往往也会为用户提供日常维护服务 用户在服务器运行使用中会突然就发现自己的服务器存在中毒和疑似中毒的现象 那么如何进行中毒行为的排查和清理 为用户提供日常维护服务的过程中经常听到用户抱怨自己使用的服
  • uniapp 选择地址

    uni getLocation OBJECT uni app官网 wx getSetting success res gt if res authSetting scope userLocation wx authorize scope s
  • 【Node】Deepin和Centos 简单快速安装Node和npm和pnpm

    1 deepin 进行安装 安装npm sudo apt install npm 安装node sudo npm install g n 升级node到稳定版 sudo n stable 升级到最新版 sudo n latest 升级npm
  • Databend Cloud 入选中国信通院《云原生产品目录》

    近日 在中国信通院召开的云原生产业大会上 正式发布了 2022 年度首批 云原生产品目录 Databend Cloud 产品成功入选 云原生产品目录 中国信通院为解决云原生用户选型困境 全面拉齐行业认知 推动云原生产业蓬勃发展 而发起 征集
  • pip install 安装路径的修改

    一般我们需要安装第三方库的时候 都是进入cmd中用pip命令来进行安装 安装各类包 但是默认安装路径在C盘 极大占用空间 下面我们就来修改一下默认的安装路径 1 查看pip默认的安装路径 打开命令提示符 win r 输入cmd 输入命令如下
  • 全国计算机二级WPS Office题库(四)

    根据最新考试大纲要求 结合近年来考试真题的重难点进行汇编整理组成的全真模拟试题 考生们可以根据文章进行专项训练 查漏补缺巩固知识点 我们对热点考题和重难点题目都进行了仔细的整理和编辑 相信考生在经过了针对性的刷题联系后 对于考试内容会更加有
  • tensorflow-gpu版本安装教程(过程详细)

    准备工作 在开始安装前 如果你的电脑装过tensorflow 请先把他们卸载干净 包括依赖的包 tensorflow estimator tensorboard tensorflow keras applications keras pre
  • myBatis 常见问题(一)查询结果字段为null

    问题描述 查询认购单详情