- 浏览: 524439 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
rgqancy:
终于明白为啥XML里要带jdbcType=XXXX了。
mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201 -
rzh0001:
Thanks a lot
mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201 -
guji528:
学习了,谢谢
mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201 -
AKka:
彻底清楚这个错误的原因了。向楼主学习了。
mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201 -
远去的渡口:
武汉小吃,我最爱热干面和鸭脖,想念啊~~
过年时候还学习编程, ...
过年的心情
mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201
前天遇到一个问题 异常显示如下:
Exception in thread "main" org.springframework.jdbc.UncategorizedSQLException: Error setting null for parameter #6 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的列类型: 1111
; uncategorized SQLException for SQL []; SQL state [99999]; error code [17004]; 无效的列类型: 1111; nested exception is java.sql.SQLException: 无效的列类型: 1111
对应的sqlmap如下:
查询了一下 一些资料说是:
MyBatis 插入空值时,需要指定JdbcType
mybatis insert空值报空值异常,但是在pl/sql不会提示错误,主要原因是mybatis无法进行转换,
所以将xml改为:
这个时候 运行正常。
我不甘心 想试试 ibatis2 是否也有同样的问题
xml如下:
这个时候 发现 ibatis2 可以正常的执行 数据库可以正常的插入数据 。
错误日志是在:org.apache.ibatis.type.BaseTypeHandler这个类的第17行打出的。根据异常上面的代码
可以看出,是因为你传入的参数的字段为null对象无法获取对应的jdbcType类型,而报的错误。
你只要在insert语句中insert的对象加上jdbcType就可以了,修改如下:
#{menuTitle,jdbcType=VARCHAR}
这样就可以解决以上错误了。
看来需要真正的了解mybatis 和ibatis 呀。
希望遇到同样问题的朋友一起交流。
晚上看到了http://wksandy.iteye.com/blog/1443133 感谢 感谢 WKsandy ,他的文字写得很好
引用
Exception in thread "main" org.springframework.jdbc.UncategorizedSQLException: Error setting null for parameter #6 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的列类型: 1111
; uncategorized SQLException for SQL []; SQL state [99999]; error code [17004]; 无效的列类型: 1111; nested exception is java.sql.SQLException: 无效的列类型: 1111
对应的sqlmap如下:
<insert id="insertCustomerLog" parameterType="map"> insert into customer_log ( ID, CUSTOMER_SERVICE_USER_NAME, user_name, CONTENT, LOG_FIRST_TYPE, STATUS, LINKED_ID, FEE, ACCOUNT_FIRST_TYPE, ACCOUNT_SECOND_TYPE, ACCOUNT_THIRD_TYPE, LOG_SECOND_TYPE, LOG_IP, MEMO ) values ( seq_customer_log.nextval , #{customerServiceUserName} , #{username}, #{content}, #{logFirstType}, #{status}, #{linkedId}, #{fee}, #{accountFirstType}, #{accountSecondType}, #{accountThirdType}, #{logSecondType}, #{logIp}, #{memo} ) </insert>
查询了一下 一些资料说是:
引用
MyBatis 插入空值时,需要指定JdbcType
mybatis insert空值报空值异常,但是在pl/sql不会提示错误,主要原因是mybatis无法进行转换,
所以将xml改为:
<insert id="insertCustomerLog1" parameterType="com.diyicai.customer.domain.CustomerLog"> insert into customer_log ( ID, CUSTOMER_SERVICE_USER_NAME, user_name , CONTENT, LOG_FIRST_TYPE, STATUS, LINKED_ID, FEE, ACCOUNT_FIRST_TYPE, ACCOUNT_SECOND_TYPE, ACCOUNT_THIRD_TYPE, LOG_SECOND_TYPE, LOG_IP, MEMO ) values ( seq_customer_log.nextval , #{customerServiceUserName,jdbcType=VARCHAR} , #{username,jdbcType=VARCHAR}, #{content,jdbcType=VARCHAR}, #{logFirstType,jdbcType=NUMERIC}, #{status,jdbcType=NUMERIC}, #{linkedId,jdbcType=VARCHAR}, #{fee,jdbcType=NUMERIC}, #{accountFirstType,jdbcType=NUMERIC}, #{accountSecondType,jdbcType=NUMERIC}, #{accountThirdType,jdbcType=NUMERIC}, #{logSecondType,jdbcType=NUMERIC}, #{logIp,jdbcType=VARCHAR}, #{memo,jdbcType=VARCHAR} ) </insert>
这个时候 运行正常。
我不甘心 想试试 ibatis2 是否也有同样的问题
xml如下:
<insert id="BasicUserInfoDaoImpl.testMap" parameterClass="java.util.HashMap"> insert into customer_log ( ID, CUSTOMER_SERVICE_USER_NAME, user_name, CONTENT, LOG_FIRST_TYPE, STATUS, LINKED_ID, FEE, ACCOUNT_FIRST_TYPE, ACCOUNT_SECOND_TYPE, ACCOUNT_THIRD_TYPE, LOG_SECOND_TYPE, LOG_IP, MEMO ) values ( seq_customer_log.nextval , #customerServiceUserName# , #username#, #content#, #logFirstType#, #status#, #linkedId#, #fee#, #accountFirstType#, #accountSecondType#, #accountThirdType#, #logSecondType#, #logIp#, #memo# ) </insert>
这个时候 发现 ibatis2 可以正常的执行 数据库可以正常的插入数据 。
错误日志是在:org.apache.ibatis.type.BaseTypeHandler这个类的第17行打出的。根据异常上面的代码
if (parameter == null) { if (jdbcType == null) { try { ps.setNull(i, JdbcType.OTHER.TYPE_CODE); } catch (SQLException e) { throw new TypeException("Error setting null parameter. Most JDBC drivers require that the JdbcType must be specified for all nullable parameters. Cause: " + e, e); } } else { ps.setNull(i, jdbcType.TYPE_CODE); } } else { setNonNullParameter(ps, i, parameter, jdbcType); }
可以看出,是因为你传入的参数的字段为null对象无法获取对应的jdbcType类型,而报的错误。
你只要在insert语句中insert的对象加上jdbcType就可以了,修改如下:
#{menuTitle,jdbcType=VARCHAR}
这样就可以解决以上错误了。
看来需要真正的了解mybatis 和ibatis 呀。
希望遇到同样问题的朋友一起交流。
晚上看到了http://wksandy.iteye.com/blog/1443133 感谢 感谢 WKsandy ,他的文字写得很好
引用
还有在向oracle插入数据时,mybatis3报Error setting null parameter. Most JDBC drivers require that the JdbcType must be specified for all nullable parameters,是由于参数出现了null值,对于Mybatis,如果进行操作的时候,没有指定jdbcType类型的参数,mybatis默认jdbcType.OTHER导致,给参数加上jdbcType可解决(注意大小写)
http://code.google.com/p/mybatis/issues/detail?id=224&q=Error%20setting%20null%20parameter&colspec=ID
http://code.google.com/p/mybatis/issues/detail?id=224&q=Error%20setting%20null%20parameter&colspec=ID
评论
5 楼
rgqancy
2016-10-19
终于明白为啥XML里要带jdbcType=XXXX了。
4 楼
rzh0001
2015-12-01
Thanks a lot
3 楼
guji528
2014-04-29
学习了,谢谢
2 楼
AKka
2014-03-27
彻底清楚这个错误的原因了。向楼主学习了。
1 楼
a4212abc
2013-02-22
哈哈,原来如此,3Q
发表评论
-
四位计算机的原理及其实现
2015-09-05 19:23 904你是否想过,计算机为什么会加减乘除?或者更直接一点,计算机的原 ... -
ubuntu13.04安装mysql5.6RPM包1、使用的安装包MySQL-5.6.12-2.l
2014-11-20 23:08 987ubuntu13.04安装mysql5.6 RPM包 1、 ... -
字典树相关代码
2014-08-10 18:21 974package com.myway.study; i ... -
两有序数组求交集
2014-05-01 00:27 1032package com.myway.study; i ... -
JVM垃圾收集器异同
2014-04-22 09:48 1223VM 垃圾收集器有3类,这里主要介绍我们常用的 并行和并发收集 ... -
idea 11 如何实现热部署
2014-02-17 13:37 995idea 如何配置 热部署呢? 如图: 然后配置 t ... -
java位操作符总结
2013-08-04 20:42 901二进制负数以它正值的 ... -
快速排序简要算法
2013-07-21 22:21 1077package math; import jav ... -
memcached安装
2013-03-10 09:32 4819今天 ,心血来潮 想安装下memcached 先给自己测试一下 ... -
温习温习 aop的原理
2013-02-11 22:23 1372在我工作这几年里,spring aop 用得最多的有两点 1 ... -
URL编码以及GET和POST提交乱码解决方案
2012-09-14 16:59 16481. 什么是URL编码。 ... -
Struts2 IF 判断 SESSION值
2012-08-16 15:12 1157<s:if test="ticke ... -
@me 如何处理
2012-07-28 22:37 1131红薯 分享了这个代码 ,我觉得很好 在这个社区与大家分享 。 ... -
猜测 javaye的分页设计
2012-07-05 21:32 1084非常喜欢javaeye的分页 ,自己也写了一个 按照逻辑测试了 ... -
java控制事务级别
2012-06-18 20:40 1138JDBC事务并发产生的问题和事务隔离级别 原子操作使用事务,一 ... -
ibatis / mybatis 存储过程调用 区别 以及例子
2012-06-11 21:16 1536ibatis: 如下: xml配置文件: 请看 ... -
java timerTask timer分析
2012-06-07 20:37 1536首先看一看 timer timerTask如何调用 ? ... -
ibatis 设置行级锁 操作
2012-04-07 18:46 3790在使用ibatis进行编程的时候 需要锁行的时候 我经常用存储 ... -
MapWrapper 学习
2012-01-04 16:25 1505MetaObject 有一个 setValue方法 这个方 ... -
mybatis 学习
2011-12-24 22:59 2386这篇博客是我学习mybatis的心得。也是对自己的鞭策。 这些 ...
相关推荐
mybatis常用jdbcType数据类型.txt mybatis常用jdbcType数据类型.txt
经过修改源码的mybatis逆向工程生成器(不生成jdbcType)
mybatis 报空值异常及其解决办法
Java实现使用Mybatis将数据批量插入到Oracle数据库,并且可以使用Oracle序列来生成主键
MyBatis动态SQL,MyBatis批量插入(Oracle数据库)[收集].pdf
通过foreach实现ibatis的批量插入
Mybatis Plus 自定义批量插入或批量更新(根据唯一索引)
Mybatis知识点整理,Dome代码,简单易懂,很适合新手学习
Mybatis与JDBC批量插入MySQL数据库性能测试,资源包含文档、代码和数据库。
java开发中使用mybatis框架需要用到的独立jar包,java开发中使用mybatis框架需要用到的独立jar包,java开发中使用mybatis框架需要用到的独立jar包,java开发中使用mybatis框架需要用到的独立jar包,
spring整合mybatis时需要用到的配置文件
文档中主要说明:(1)多表联合查询步骤,快捷便利;(2)数据批量插入,以及相关的案例,节省运行资源。
struts2+mybatis解决longblob字段问题,存读取并下载longblob字段
- Mybatis常见知识点 - Mybatis优点 - Mybatis缺点 - Mybatis适用场景 - Mybatis架构 - Mybatis SQL执行流程 - Executor的类型 - 什么是延迟加载? - 延迟加载原理 - ${} 和 #{}的区别 - Mybatis 模糊查询...
mybatis 批量插入 嵌套select
mybatis源码是mybatis-3.2.6的源码,用户使用mybatis时可以进行参考
使用方法请看博客 https://blog.csdn.net/bandaotixiruiqiang/article/details/72478361#comments_12931827
mybatis运行需要的jar, 希望给同志们提供点方便。毕竟在网上下载也是不太方便 希望审核能过,赚点积分下点资源
mybatis知识点.docx
Java实现Mybatis将数据批量插入到Oracle中