iBatis resultMap报错 nullValue完美解决

2023-11-06

错误信息:

SQLErrorCodesFactory - Database product name cached for DataSource [org.apache.commons.dbcp.BasicDataSource@19c5048]: name is 'MySQL'
SQLErrorCodesFactory - SQL error codes for 'MySQL' found
SQLErrorCodeSQLExceptionTranslator - Unable to translate SQLException with Error code '0', will now try the fallback translator
DataSourceUtils - Returning JDBC Connection to DataSource
Exception in thread "main" org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0];  
--- The error occurred in net/jbbs/dao/ibatis/map/user.xml.
--- The error occurred while applying a result map.
--- Check the user.userResult.
--- The error happened while setting a property on the result object.
--- Cause: net.sf.cglib.beans.BulkBeanException; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:  
--- The error occurred in net/jbbs/dao/ibatis/map/user.xml.
--- The error occurred while applying a result map.
--- Check the user.userResult.
--- The error happened while setting a property on the result object.
--- Cause: net.sf.cglib.beans.BulkBeanException
Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:  
--- The error occurred in net/jbbs/dao/ibatis/map/user.xml.
--- The error occurred while applying a result map.
--- Check the user.userResult.
--- The error happened while setting a property on the result object.
--- Cause: net.sf.cglib.beans.BulkBeanException
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:188)
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:104)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:566)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:541)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)
at org.springframework.orm.ibatis.SqlMapClientTemplate$1.doInSqlMapClient(SqlMapClientTemplate.java:243)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:193)
at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMapClientTemplate.java:241)
at net.jbbs.dao.ibatis.UserDAOImpl.findByEmail(UserDAOImpl.java:54)
at net.jbbs.test.UserTest.findByEmail(UserTest.java:42)
at net.jbbs.test.UserTest.main(UserTest.java:34)
Caused by: net.sf.cglib.beans.BulkBeanException
at net.jbbs.domain.User$$BulkBeanByCGLIB$$88b6b34d.setPropertyValues(<generated>)
at com.ibatis.sqlmap.engine.accessplan.EnhancedPropertyAccessPlan.setProperties(EnhancedPropertyAccessPlan.java:33)
at com.ibatis.sqlmap.engine.exchange.JavaBeanDataExchange.setData(JavaBeanDataExchange.java:112)
at com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.setResultObjectValues(BasicResultMap.java:373)
at com.ibatis.sqlmap.engine.mapping.statement.RowHandlerCallback.handleResultObject(RowHandlerCallback.java:64)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:382)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:301)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:190)
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(GeneralStatement.java:205)
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:173)
... 10 more

这个错误指出resultMap里有问题。说错误发生在设置某一个属性的时候,但是没有具体说明是一个怎么样的错误<NULL错误>。由于对于iBatis了解还不是很深,所以一时不知如何事好。只有在resultMap里面作文章,把里面的<result>注释掉一些,哈哈,程序居然正常跑起来了。看来我快要找到错误了,接着继续排除其它的<result>,终于让我找到出错的一行<result>了:  <result column="ORDER_NUM" property="orderNum" jdbcType="long" /><!--
  接下来得弄清楚是一个什么样的错误,怎么去修复它。查找数据库表,发现"orderNum"这一列是nullable,并且没有为它设置默认值。所以表里面orderNum这一列有许多都为NULL。我大概明白了,肯定是iBatis试图把从数据库读出来的NULL 值写入对象属性的时候出现异常。采取的补救措施就是:
  <result column="ORDER_NUM" property="orderNum" jdbcType="long"  nullValue="0"/>
对从数据库读出来的NULL值采用一个相应可转换为orderNum类型的值来替换

附:
 <resultMap id="pageStaticItemMap" class="PageStaticItem">
  <result column="ITEMID" property="itemId" jdbcType="long"/>
  <result column="ITEMNAME" property="itemName" jdbcType="String"/>
  <result column="SERVERID" property="serverId" jdbcType="long"/>
  <result column="SOURCE" property="source" jdbcType="String"/>  
  <result column="TARGET_PATH" property="targetPath" jdbcType="String"/>
  <result column="TARGET_FILE" property="targetFile" jdbcType="String"/>
  <result column="LOCAL_PATH" property="localPath" jdbcType="String"/>
  <result column="FTP_PATH" property="ftpPath" jdbcType="String"/>
  <result column="ITEMTYPE" property="itemType" jdbcType="String"/>  
  <result column="EXT1" property="ext1" jdbcType="String"/>
  <result column="EXT2" property="ext2" jdbcType="String"/>
  <result column="EXT3" property="ext3" jdbcType="String"/>
  <result column="EXT4" property="ext4" jdbcType="String"/>
  <result column="ORDER_NUM" property="orderNum" jdbcType="long" /><!--这一行加一个nullValue="0"就OK了-->
  <result column="ITEM_TYPE" property="item_Type" jdbcType="String"/>
  <result column="SERVER_PROPERTIES" property="serverProperties" jdbcType="String"/>
  <result column="GET_SQL" property="getSql" jdbcType="String"/> 
 </resultMap>

 

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

iBatis resultMap报错 nullValue完美解决 的相关文章

  • 如何向 OkHttp 请求拦截器添加标头?

    我将这个拦截器添加到我的 OkHttp 客户端 public class RequestTokenInterceptor implements Interceptor Override public Response intercept C
  • C++ 清理字符串函数

    我需要为以下字符构建自己的清理函数 n r 0 and CTRL Z 我想确保以下代码能够实现这一目的 并且没有副作用 include
  • 通过 JDBC 与 CLI 使用 MIT Kerberos 连接到 PostgreSQL 9.4 时出错

    我已经使用 MIT Kerberos 5 设置了 PostgreSQL 9 4 并且可以使用 psql 在 CLI 上连接 提交指纹后 我的委托人是 bgiles postgres REALM pg hba conf 有 host all
  • Spring MVC 中的 CSRF(跨站请求伪造)保护

    我对春季的 CSRF 跨站请求伪造 保护有点困惑 不 我有我的 jsp 我的控制器和一个 Web 服务 我想要做的是在 Web 服务级别验证令牌 如果令牌匹配 则运行 Web 服务 在我的例子中执行数据库插入 JSP file
  • 如何加载椭圆曲线 PEM 编码的私钥? [复制]

    这个问题在这里已经有答案了 我使用 OpenSSL 生成了椭圆曲线私钥 公钥对 私钥和公钥均采用 PEM 编码 我已经弄清楚如何加载公钥 感谢this https stackoverflow com a 40439081但是 我无法弄清楚如
  • 平衡括号问题的优化解

    给定一个仅包含字符的字符串 and 判断输入字符串是否有效 输入字符串在以下情况下有效 左括号必须由相同类型的括号封闭 左括号必须按正确的顺序关闭 请注意 空字符串也被视为有效 示例1 Input Output true Example 2
  • AES BadPaddingException

    如果我使用错误的密钥或错误的盐进行解密 则会引发 BadPaddingException 我希望返回一个不正确的字符串 doFinal 导致解密方法出现异常 信息 This is just an example Unfug S F V s
  • java模拟自定义对象

    public class MainClass public void makeCall CustomObject obj new CustomObject obj testMethod 我想进行单元测试makeCall 所以我必须嘲笑Cus
  • 在Tomcat中设置环境变量TESSDATA_PREFIX

    我们正在使用名为 Tess4J 的 Tesseract OCR Java 库 如果作为独立应用程序运行 它可以正常工作 它需要一个名为 TESSDATA PREFIX 的变量 其中包含 tessdata 配置和其他字符集相关文件 它也可以与
  • 大型 XML 的 XML 节点到字符串转换

    到目前为止我一直在使用DOM源在我的 Android 应用程序中将 XML 文件转换为字符串 这是我的代码 public String convertElementToString Node element throws Transform
  • JavaFX 动画使用循环?

    我正在尝试制作一款类似太空侵略者的游戏 我画了一个正方形 我想通过使用循环逐步向下移动它thread sleep 然而 正方形立即被绘制出来 我知道有可以使用的动画路径 但我想保持低水平并仅使用坐标系 有没有办法使用这样的循环来制作时间轴动
  • 添加和完成 PHP 源代码文档的工具 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有几个已完成的较旧的 PHP 项目 其中有很多内容 我想以 javadoc phpDocumentor
  • 为什么 Cassandra 客户端在生产中没有 epoll 时会失败? [复制]

    这个问题在这里已经有答案了 当我在本地运行服务时 我收到一条警告 指出 epoll 不可用 因此它使用 NIO 很公平 当我将其部署到 Kubernetes 中时 我得到了以下信息 这导致服务无法运行 2017 03 29T19 09 22
  • 找出段落中出现的单词

    sentence Alice was not a bit hurt and she jumped up on to her feet in a moment words Alice jumped played 我可以使用filterpyth
  • 如何使 RSACryptoServiceProvider 在没有填充(nopadding)的情况下工作?

    我需要使 C 应用程序与 Java 应用程序兼容 Java 应用程序使用Cipher getInstance RSA ECB nopadding 初始化器使密码 ECB 和无填充 但是 在 C 中 您有 2 个填充选项 OAEP 填充或 P
  • org.apache.catalina.core.JreMemoryLeakPreventionListener 中急切调用 URLConnection 的 setDefaultUseCaches(false) 是什么原因

    这个问题可能有点难以找到答案 这是一个系列中的问题考虑使用 Policy getPolicy 的原因是什么 因为它将保留对上下文的静态引用并可能导致内存泄漏 https stackoverflow com questions 7057421
  • 从字符串中提取文本 Java

    使用此字符串 ADACADABRA 如何从java中的字符串 ADACADABRA 中提取 CADA 以及如何提取 和 之间的id从下面的链接 http www youtube nocookie com embed zaaU9lJ34c5
  • 为什么我的 Java 路径中添加了“L”?

    我在我的类路径中加载了一个 jar 在 iReport 中 如果重要的话 我确信它具有所需的方法 但是当我尝试测试连接 从而调用该 jar 时 我得到一个 java lang NoSuchMethodError 说它正在引用班上 Lorg
  • Grep 模式匹配用双引号括起来的小写字符串

    我在 grep 方面遇到了一些问题 我似乎无法弄清楚 我试图在一组源文件中搜索用双引号 C 字符串 括起来的小写单词的所有实例 使用 bash 和 gnu grep grep e a z cpp 没有给我任何匹配项 而 grep e a z
  • Java分数计算器

    我对 Java 编程还很陌生 我的 AP 计算机编程课程有作业要完成 所以请耐心等待 我必须弄清楚如何将两个分数相乘 我想知道是否有任何方法可以在方法内部声明变量并在该方法外部使用它 我在介绍方法中的 while 循环 谢谢您 希望这不会令

随机推荐

  • 绘制单个条形图与多个条形图

    绘制单个条形图 案例 假设你获取到了某年内地电影票房前20的电影 列表a 和电影票房数据 列表b 那么如何更加直观的展示该数据 a 战狼2 速度与激情8 功夫瑜伽 西游伏妖篇 变形金刚5 最后的骑士 摔跤吧 爸爸 加勒比海盗5 死无对证 金
  • 使用JavaMail发送邮件时嵌入公司logo图片

    使用JavaMail发送邮件时嵌入公司logo图片 第一种方式 img 标签和 logo 图片链接 第二种方式 使用 img 标签和图片 base64 字符串 第三种方式 推荐 将 logo 当做附件一起发送并设置 ContentID 再使
  • [1120]Maven依赖冲突解决之exclusions

    1 背景 1 作为java生态下开发者 往往需要使用大量线程的第三方库 一般都是以jar包形式存在 2 maven作为事实上主流的jar包依赖管理工具 Idea和Eclipse都支持创建maven工程来管理jar包依赖 3 使用maven进
  • C语言实现原码补码输出

    今天复习了一下C中的原码补码的知识 顺便编程使用for while do while goto recursive 实现了补码和原码的输出 核心思想 借助一个字符串数组 将得到的原码和补码存储到相应数组中去 在计算原码的时候 由于存在负数的
  • 单片机C语言基础

    目录 前言 一 C语言基础 1 1 逻辑运算 1 2 字长定义 1 3 布尔型变量 1 4 符号 1 5 位段 1 6 typedef关键字 1 7 volatile关键字 二 代码规则 前言 介绍一下单片机开发的C语言使用 个人会慢慢完善
  • 第四次 python

    元组练习题 tup nihao wohao dajiahao a 计算元组长度并输出 b 获取元组第2个元素并输出 c 获取元素第2 3个元素并输出 d 使用for循环遍历输出元组 e 使用for len range输出元组的索引 f 将元
  • JAVA实现用户输出正整数重复出现的次数并打印(最大数字不超过10)

    package day1 实现用户输出正整数重复出现的次数并打印 public class TestSameNum public static void main String args int arr 1 2 3 4 5 6 7 1 2
  • vue使用动态样式与计算属性实现多变量判断

    一 动态class绑定 代码 class的计算属性着重于减少页面内含大量逻辑判断导致代码阅读性差
  • 垃圾分类图片数据集分享-约10w张数据集

    1 获取方式 点赞本博客 评论区留邮箱 博主在会发送 私信博主 访问的人太多了 需要私信联系 截至到2021 03 30评论区所有邮箱已无偿发送 图片数据集直接留邮箱即可 2 问题描述 最近在做一个相关项目 从网上整理了许许多多的有关于垃圾
  • 多维时序

    多维时序 MATLAB实现DNN深度神经网络多变量时间序列预测 考虑历史特征的影响 多指标 多图输出 目录 多维时序 MATLAB实现DNN深度神经网络多变量时间序列预测 考虑历史特征的影响 多指标 多图输出 预测效果 基本介绍 模型结构
  • .Net Core with 微服务 - 架构图

    上一次我们简单介绍了什么是微服务 NET Core with 微服务 什么是微服务 介绍了微服务的来龙去脉 一些基础性的概念 有大佬在评论区指出说这根本不是微服务 由于本人的能力有限 大概也只能理解到这个层次 先不管它到底是不是微服务吧 既
  • 「五度易链」助力园区招商,引优质企业 精准甄别 全程管理,促产业高质发展

    近年 无数产业园区已迈入数字化转型阶段 大数据招商被深度应用 缺乏招商线索的局面已一去不返 但面对鳞萃比栉 纷繁芜杂的各种招商标的信息 又是让园区招商工作者眼花缭乱 举棋不定 难以抉择 那么该如何进行项目甄别 判断企业落地价值呢 五度易链
  • 快手短视频微信小程序端自动下单工具

    快手小店微信小程序虽然关闭了 但是还有个快手短视频 其实就是快手小店的产品 在直播售卖 抓包短视频直播下单 根据小程序端下单 写个自动下单工具 众所周知 快手CK 很长时间都有效 打开软件 打开PC微信 快手短视频小程序 进入直播 随便找一
  • Wolfram Mathematica 安装与使用

    1 Wolfram Mathematica 9 安装 各大网站几乎都有Wolfram Mathematica 9学习软件 大学 高等数学 里面涉及的的函数图形几乎都可以使用GeoGebra 5来做图 GeoGebra的功能十分强大 而且是免
  • Centos 8二进制安装Mysql-8.0.23

    1 mysql tar包的下载 下载官网 https downloads mysql com archives community 2 解压 root cent8 yzil tar xf mysql 8 0 23 linux glibc2
  • 基于NB-IoT物联网智能运维箱整体解决方案

    一 方案背景 雪亮工程 智慧交通 水利监控 环保监控等系统大多安装于户外 设备量级大 分布广 易受到恶劣环境和人为破坏等因素影响 导致系统故障率高 可用性差 传统人工维保存在维护成本高 效率低的问题 难以保证设备的高在线率 在物联网 边缘计
  • 代码行数统计小工具

    一 先下载好SourceCounter小工具 解压 然后直接打开文件夹中的SourceCounter exe 如果没有找到此工具的下载链接 点这里下载 二 选择代码类型 勾选上所有类型 三 双击点开后 选择文件夹 就可以直接统计出字数了
  • 前端笔记(4)JavaScript宏观与微观任务

    宏观和微观任务 在 ES3 和更早的版本中 JavaScript 本身还没有异步执行代码的能力 这也就意味着 宿主环境传递给 JavaScript 引擎一段代码 引擎就把代码直接顺次执行了 这个任务也就是宿主发起的任务 但是 在 ES5 之
  • 顺序表的基本操作(C语言实现)

    顺序表 前言 本文主要讲线性表的其中一种 那就是顺序表 顺序表就是采用顺序储存方式来存储数据 所谓顺序存储 就是数据在内存上的地址同样为连续储存 中间不允许有空 有间隔 顺序表的优点在于支持随机访问 就是通过下标来访问元素 缺点是插入 删除
  • iBatis resultMap报错 nullValue完美解决

    错误信息 SQLErrorCodesFactory Database product name cached for DataSource org apache commons dbcp BasicDataSource 19c5048 na